javascript:date_format
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
javascript:date_format [2016/07/07 21:21] – peter | javascript:date_format [2020/07/15 09:30] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 138: | Line 138: | ||
var dateFormat = function () { | var dateFormat = function () { | ||
- | var token = / | + | |
- | timezone = / | + | timezone = / |
- | timezoneClip = / | + | timezoneClip = / |
- | pad = function (val, len) { | + | pad = function (val, len) { |
- | val = String(val); | + | val = String(val); |
- | len = len || 2; | + | len = len || 2; |
- | while (val.length < len) val = " | + | while (val.length < len) val = " |
- | return val; | + | return val; |
- | }; | + | }; |
- | // Regexes and supporting functions are cached through closure | + | |
- | return function (date, mask, utc) { | + | return function (date, mask, utc) { |
- | var dF = dateFormat; | + | var dF = dateFormat; |
- | // You can't provide utc if you skip other args (use the " | + | |
- | if (arguments.length == 1 && Object.prototype.toString.call(date) == " | + | if (arguments.length == 1 && Object.prototype.toString.call(date) == " |
- | mask = date; | + | mask = date; |
- | date = undefined; | + | date = undefined; |
- | } | + | } |
- | // Passing date through Date applies Date.parse, if necessary | + | |
- | date = date ? new Date(date) : new Date; | + | date = date ? new Date(date) : new Date; |
- | if (isNaN(date)) throw SyntaxError(" | + | if (isNaN(date)) throw SyntaxError(" |
- | mask = String(dF.masks[mask] || mask || dF.masks[" | + | |
- | // Allow setting the utc argument via the mask | + | |
- | if (mask.slice(0, | + | if (mask.slice(0, |
- | mask = mask.slice(4); | + | mask = mask.slice(4); |
- | utc = true; | + | utc = true; |
- | } | + | } |
- | var _ = utc ? " | + | |
- | d = date[_ + " | + | d = date[_ + " |
- | D = date[_ + " | + | D = date[_ + " |
- | m = date[_ + " | + | m = date[_ + " |
- | y = date[_ + " | + | y = date[_ + " |
- | H = date[_ + " | + | H = date[_ + " |
- | M = date[_ + " | + | M = date[_ + " |
- | s = date[_ + " | + | s = date[_ + " |
- | L = date[_ + " | + | L = date[_ + " |
- | o = utc ? 0 : date.getTimezoneOffset(), | + | o = utc ? 0 : date.getTimezoneOffset(), |
- | flags = { | + | flags = { |
- | d: d, | + | |
- | dd: | + | dd: pad(d), |
- | ddd: dF.i18n.dayNames[D], | + | |
- | dddd: dF.i18n.dayNames[D + 7], | + | dddd: dF.i18n.dayNames[D + 7], |
- | m: m + 1, | + | |
- | mm: | + | mm: pad(m + 1), |
- | mmm: dF.i18n.monthNames[m], | + | |
- | mmmm: dF.i18n.monthNames[m + 12], | + | mmmm: dF.i18n.monthNames[m + 12], |
- | yy: | + | yy: String(y).slice(2), |
- | yyyy: y, | + | yyyy: y, |
- | h: H % 12 || 12, | + | |
- | hh: | + | hh: pad(H % 12 || 12), |
- | H: H, | + | |
- | HH: | + | HH: pad(H), |
- | M: M, | + | |
- | MM: | + | MM: pad(M), |
- | s: s, | + | |
- | ss: | + | ss: pad(s), |
- | l: pad(L, 3), | + | |
- | L: pad(L > 99 ? Math.round(L / 10) : L), | + | |
- | t: H < 12 ? " | + | |
- | tt: | + | tt: H < 12 ? " |
- | T: H < 12 ? " | + | |
- | TT: | + | TT: H < 12 ? " |
- | Z: utc ? " | + | |
- | o: (o > 0 ? " | + | |
- | S: [" | + | |
- | }; | + | }; |
- | return mask.replace(token, | + | |
- | return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); | + | return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); |
- | }); | + | }); |
- | }; | + | }; |
}(); | }(); | ||
+ | |||
// Some common format strings | // Some common format strings | ||
dateFormat.masks = { | dateFormat.masks = { | ||
- | " | + | |
- | shortDate: | + | shortDate: |
- | mediumDate: | + | mediumDate: |
- | longDate: | + | longDate: |
- | fullDate: | + | fullDate: |
- | shortTime: | + | shortTime: |
- | mediumTime: | + | mediumTime: |
- | longTime: | + | longTime: |
- | isoDate: | + | isoDate: |
- | isoTime: | + | isoTime: |
- | isoDateTime: | + | isoDateTime: |
- | isoUtcDateTime: | + | isoUtcDateTime: |
}; | }; | ||
+ | |||
// Internationalization strings | // Internationalization strings | ||
dateFormat.i18n = { | dateFormat.i18n = { | ||
- | dayNames: [ | + | |
- | " | + | " |
- | " | + | " |
- | ], | + | ], |
- | monthNames: | + | monthNames: [ |
- | " | + | " |
- | " | + | " |
- | ] | + | ] |
}; | }; | ||
+ | |||
// For convenience... | // For convenience... | ||
Date.prototype.format = function (mask, utc) { | Date.prototype.format = function (mask, utc) { | ||
- | return dateFormat(this, | + | |
}; | }; | ||
</ | </ | ||
+ | Note that the day and month names can be changed (for internationalization or other purposes) by updating the **dateFormat.i18n** object. |
javascript/date_format.1467926481.txt.gz · Last modified: 2020/07/15 09:30 (external edit)