Date object formatting method. For more information, see.
The Code is as follows:
/*
* Date Format 1.2.3
* (C) 2007-2009 Steven Levithan
* MIT license
*
* Includes enhancements by Scott Trenda
* And Kris Kowal
*
* Accepts a date, a mask, or a date and a mask.
* Returns a formatted version of the given date.
* The date defaults to the current date/time.
* The mask defaults to dateFormat. masks. default.
*/
Var dateFormat = function (){
Var token =/d {1, 4} | m {1, 4} | yy (? : Yy )? | ([HhMsTt]) \ 1? | [Losz] | "[^"] * "| '[^'] * '/g,
Timezone =/\ B (? : [PMCEA] [SDP] T | (? : Pacific | Mountain | Central | Eastern | Atlanta )(? : Standard | Daylight | Prevailing) Time | (? : GMT | UTC )(? : [-+] \ D {4 })?) \ B/g,
TimezoneClip =/[^-+ \ dA-Z]/g,
Pad = function (val, len ){
Val = String (val );
Len = len | 2;
While (val. length <len) val = "0" + val; return val ;}; // Regexes and supporting functions are cached through closure return function (date, mask, utc) {var dF = dateFormat; // You can't provide utc if you skip other args (use the "UTC:" mask prefix) if (arguments. length = 1 & Object. prototype. toString. call (date) = "[object String]" &! /\ D/. test (date) {mask = date; date = undefined;} // Passing date through Date applies Date. parse, if necessary date = date? New Date (date): new Date; if (isNaN (date) throw SyntaxError ("invalid date"); mask = String (dF. masks [mask] | mask | dF. masks ["default"]); // Allow setting the utc argument via the mask if (mask. slice (0, 4) = "UTC:") {mask = mask. slice (4); utc = true;} var _ = utc? "GetUTC": "get", d = date [_ + "Date"] (), D = date [_ + "Day"] (), m = date [_ + "Month"] (), y = date [_ + "FullYear"] (), H = date [_ + "Hours"] (), M = date [_ + "Minutes"] (), s = date [_ + "Seconds"] (), L = date [_ + "Milliseconds"] (), o = utc? 0: date. getTimezoneOffset (), flags = {d: d, dd: pad (d), ddd: dF. i18n. dayNames [D], dddd: dF. i18n. dayNames [D + 7], m: m + 1, mm: pad (m + 1), mmm: dF. i18n. monthNames [m], mmmm: dF. i18n. monthNames [m + 12], yy: String (y ). slice (2), yyyy: y, h: H % 12 | 12, hh: pad (H % 12 | 12), H: H, HH: pad (H), M: M, MM: pad (M), s: s, ss: pad (s), l: pad (L, 3), L: pad (L> 99? Math. round (L/10): L ),
T: H <12? "A": "p ",
Tt: H <12? "Am": "pm ",
T: H <12? "A": "P ",
TT: H <12? "AM": "PM", Z: utc? "UTC": (String (date ). match (timezone) | [""]). pop (). replace (timezoneClip, ""), o: (o> 0? "-": "+") + Pad (Math. floor (Math. abs (o)/60) * 100 + Math. abs (o) % 60, 4 ),
S: ["th", "st", "nd", "rd"] [d % 10> 3? 0: (d % 100-d % 10! = 10) * d % 10]
};
Return mask. replace (token, function ($0 ){
Return $0 in flags? Flags [$0]: $0. slice (1, $0. length-1 );
});
};
}();
// Some common format strings
DateFormat. masks = {
"Default": "ddd mmm dd yyyy HH: MM: ss ",
Expiry date: "m/d/yy ",
MediumDate: "mmm d, yyyy ",
LongDate: "mmmm d, yyyy ",
FullDate: "dddd, mmmm d, yyyy ",
Processing time: "h: mm tt ",
MediumTime: "h: MM: ss TT ",
LongTime: "h: MM: ss tt z ",
IsoDate: "yyyy-mm-dd ",
IsoTime: "HH: MM: ss ",
IsoDateTime: "yyyy-mm-dd't'hh: MM: ss ",
IsoUtcDateTime: "UTC: yyyy-mm-dd't'hh: MM: ss 'Z '"
};
// Internationalization strings
DateFormat. i18n = {
DayNames :[
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat ",
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
],
MonthNames :[
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct ", "Nov", "Dec ",
"January", "February", "March", "maid", "May", "June", "July", "August", "September", "October ", "November", "December"
]
};
// For convenience...
Date. prototype. format = function (mask, utc ){
Return dateFormat (this, mask, utc );
};
Usage:
The Code is as follows:
Var now = new Date ();
Now. format ("m/dd/yy ");
// Returns, e.g., 6/09/07
// Can also be used as a standalone function
DateFormat (now, "dddd, mmmm dS, yyyy, h: MM: ss TT ");
// Saturday, June 9th, 2007, 5:46:21
// You can use one of several named masks
Now. format ("isoDateTime ");
// 2007-06-09T17: 46: 21
//... Or add your own
DateFormat. masks. hammerTime = 'hh: MM! "Can \'t touch this! "';
Now. format ("hammerTime ");
! Can't touch this!
// When using the standalone dateFormat function,
// You can also provide the date as a string
DateFormat ("Jun 9 2007", "fullDate ");
// Saturday, June 9, 2007
// Note that if you don't include the mask argument,
// DateFormat. masks. default is used
Now. format ();
// Sat Jun 09 2007 17:46:21
// And if you don't include the date argument,
// The current date and time is used
DateFormat ();
// Sat Jun 09 2007 17:46:22
// You can also skip the date argument (as long as your mask doesn't
// Contain any numbers), in which case the current date/time is used
DateFormat ("longTime ");
// 5:46:22 EST
// And finally, you can convert local time to UTC time. Either pass in
// True as an additional argument (no argument skipping allowed in this case ):
DateFormat (now, "longTime", true );
Now. format ("longTime", true );
// Both lines return, e.g., 10:46:21 UTC
//... Or add the prefix "UTC:" to your mask.
Now. format ("UTC: h: MM: ss tt z ");
// 10:46:21 UTC
Mask |
Description |
d |
Day of the month as digits; no leading zero for single-digit days. |
dd |
Day of the month as digits; leading zero for single-digit days. |
ddd |
Day of the week as a three-letter abbreviation. |
dddd |
Day of the week as its full name. |
m |
Month as digits; no leading zero for single-digit months. |
mm |
Month as digits; leading zero for single-digit months. |
mmm |
Month as a three-letter abbreviation. |
mmmm |
Month as its full name. |
yy |
Year as last two digits; leading zero for years less than 10. |
yyyy |
Year represented by four digits. |
h |
Hours; no leading zero for single-digit hours (12-hour clock ). |
hh |
Hours; leading zero for single-digit hours (12-hour clock ). |
H |
Hours; no leading zero for single-digit hours (24-hour clock ). |
HH |
Hours; leading zero for single-digit hours (24-hour clock ). |
M |
Minutes; no leading zero for single-digit minutes. Uppercase M unlike CFtimeFormat 'S m to avoid conflict with months. |
MM |
Minutes; leading zero for single-digit minutes. Uppercase MM unlike CFtimeFormat 'S mm to avoid conflict with months. |
s |
Seconds; no leading zero for single-digit seconds. |
ss |
Seconds; leading zero for single-digit seconds. |
l Or L |
Milliseconds.l Gives 3 digits.L Gives 2 digits. |
t |
Lowercase, single-character time marker string:AOrP. No equivalent in CF. |
tt |
Lowercase, two-character time marker string:AmOrPm. No equivalent in CF. |
T |
Uppercase, single-character time marker string:AOrP. Uppercase T unlike CF's t to allow for user-specified casing. |
TT |
Uppercase, two-character time marker string:AMOrPM. Uppercase TT unlike CF's tt to allow for user-specified casing. |
Z |
US timezone abbreviation, e.g.ESTOrMDT. With non-US timezones or in the Opera browser, the GMT/UTC offset is returned, e.g.GMT-0500 No equivalent in CF. |
o |
GMT/UTC timezone offset, e.g.-0500Or+ 0230. No equivalent in CF. |
S |
The date's ordinal suffix (St,Nd,Rd, OrTh). Works welld . No equivalent in CF. |
'…' Or "…" |
Literal character sequence. Surrounding quotes are removed. No equivalent in CF. |
UTC: |
Must be the first four characters of the mask. Converts the date from local time to UTC/GMT/Zulu time before applying the mask. The "UTC:" prefix is removed. No equivalent in CF. |
Name |
Mask |
Example |
Default |
Ddd mmm dd yyyy HH: MM: ss |
Sat Jun 09 2007 17:46:21 |
Expiry date |
M/d/yy |
6/9/07 |
MediumDate |
Mmm d, yyyy |
Jun 9, 2007 |
LongDate |
Mmmm d, yyyy |
June 9, 2007 |
FullDate |
Dddd, mmmm d, yyyy |
Saturday, June 9, 2007 |
Processing time |
H: MM TT |
5: 46 PM |
MediumTime |
H: MM: ss TT |
5:46:21 |
LongTime |
H: MM: ss TT Z |
5:46:21 EST |
IsoDate |
Yyyy-mm-dd |
2007-06-09 |
IsoTime |
HH: MM: ss |
17:46:21 |
IsoDateTime |
Yyyy-mm-dd't'hh: MM: ss |
2007-06-09T17: 46: 21 |
IsoUtcDateTime |
UTC: yyyy-mm-dd't'hh: MM: ss 'Z' |
2007-06-09T22: 46: 21Z |