/*
* 日付形式 1.2.3
* (c) 2007-2009 Steven Levithan
* MIT ライセンス
*
* Scott Trenda
* および Kris Kowal
*
* による拡張機能が含まれています。日付、マスク、または日付とマスク。
* 指定された日付の書式設定されたバージョンを返します。
* 日付のデフォルトは現在の日付/時刻です。
* マスクのデフォルトは dateFormat.masks.default です。
*/
var dateFormat = function () {
var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt ])1?|[LloSZ]|"[^"]*"|'[^']*'/g,
タイムゾーン = /b(?:[PMCEA][SDP]T|(?:Pacific|山|中部|東部|大西洋) (?:標準|夏時間|一般) 時間|(?:GMT|UTC)(?:[- ]d{4})?)b/g,
timezoneClip = /[ ^- dA-Z]/g,
pad = function (val, len) {
val = String(val);
len = len 2 || ; len) val = "0" val; return val } // 正規表現とサポート関数はクロージャ return function (date, Mask, utc) { // utc を指定することはできません。他の引数をスキップします (「UTC:」マスク接頭辞を使用します) if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/d/.test(date) ) { マスク = 日付; 日付 = 未定義 } // 必要に応じて Date を渡すと Date.parse が適用されます。 date = date ? new Date(isNaN(date)) throw SyntaxError("invalid date) "); マスク = String(dF.masks[mask] || マスク || dF.masks["default"]); // マスクを介して utc 引数を設定できるようにする if (mask.slice(0, 4) == "UTC:") { マスク = マスク.スライス(4); utc = true; var _ = utc ? "getUTC" : "get"、d = date[_ "Date"]()、D = date[_ "Day"]()、m = date[_ "Month"]()、y = date[_ " Fullyear"]()、H = 日付[_ "時"]()、M = 日付[_ "分"]()、s = 日付[_ "秒"]()、L = 日付[_ "ミリ秒" ]()、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: パッド(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: パッド(H % 12 || 12)、H: H、HH: パッド(H)、M: M、MM: パッド(M)、s: s、ss: パッド、l: パッド(L, 3)、L: Pad(L > 99 ? Math.round(L / 10) : L)、
t: H tt: H T: H
12? "A" : "P"、
TT: H 0 ? "-" : " ") パッド(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);
});
};
}();
// 一般的なフォーマット文字列
dateFormat.masks = {
"default": "ddd mmm dd yyyy HH:MM:ss",
shortDate: "m/d/yy "、
mediumDate: "mmm 日、yyyy"、
longDate: "mmmm 日、yyyy"、
fullDate: "dddd、mmmm 日、yyyy"、
shortTime: "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'"
};
// 国際化文字列
dateFormat.i18n = {
dayNames: [
"Sun"、"Mon"、"火曜日"、"水"、"木"、"金曜日" 、「土」、
「日曜日」、「月曜日」、「火曜日」、「水曜日」、「木曜日」、「金曜日」、「土曜日」
]、
月名: [
" 1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月、
「1月」、「2月」、「3月」、「4月」、「5月」、「6月」、「7月」、「8月」、「9月」、「10月」、「11月」、「12月」
]
};
// 便宜上...
Date.prototype.format = function (mask, utc) {
return dateFormat(this, Mask, utc);
};
用法:
var now = new Date();
now.format("m/dd/yy");
// 戻り値、例: 6/09/07
// スタンドアロン関数としても使用可能
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");
// 土曜日、2007 年 6 月 9 日、午後 5 時 46 分 21 秒
// いくつかの名前付きマスクのいずれかを使用できます
now.format("isoDateTime");
// 2007-06-09T17:46:21
// ...または、独自の
dateFormat.masks.hammerTime = 'HH:MM! を追加します。 「これには触れられません!」
now.format("hammerTime");
// 17:46!これには触れられません!
// スタンドアロンの dateFormat 関数を使用する場合、
// 日付を文字列として指定することもできます。
dateFormat("Jun 9 2007", "fullDate");
// 2007 年 6 月 9 日土曜日
// マスク引数を含めない場合、
// dateFormat.masks.default が使用されることに注意してください
now.format( );
// Sat Jun 09 2007 17:46:21
// date 引数を含めない場合、
// 現在の日付と時刻が使用されます
dateFormat( );
// Sat Jun 09 2007 17:46:22
// (マスクに
// 数字が含まれていない限り) 日付引数をスキップすることもできます。現在の日付/時刻が使用される場合
dateFormat("longTime");
// 5:46:22 PM EST
// そして最後に、現地時間を UTC 時間に変換できます。
// true を追加の引数として渡します (この場合、引数のスキップは許可されません):
dateFormat(now, "longTime", true);
now.format("longTime", true);
// 両方の行が返されます。例: 10:46:21 PM UTC
// ...または、接頭辞「UTC:」をマスクに追加します。
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 CF timeFormat 's m to avoid conflict with months.
|
MM |
Minutes; leading zero for single-digit minutes. Uppercase MM unlike CF timeFormat '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: a or p. No equivalent in CF.
|
tt |
Lowercase, two-character time marker string: am or pm. No equivalent in CF.
|
T |
Uppercase, single-character time marker string: A or P. Uppercase T unlike CF's t to allow for user-specified casing.
|
TT |
Uppercase, two-character time marker string: AM or PM. Uppercase TT unlike CF's tt to allow for user-specified casing.
|
Z |
US timezone abbreviation, e.g. EST or MDT. 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. -0500 or +0230. No equivalent in CF.
|
S |
The date's ordinal suffix (st, nd, rd, or th). Works well with d . 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 |
shortDate |
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 |
shortTime |
h:MM TT |
5:46 PM |
mediumTime |
h:MM:ss TT |
5:46:21 PM |
longTime |
h:MM:ss TT Z |
5:46:21 PM 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 |