javascript 日期格式化
有四種 javascript 日期輸入格式:
類型 | 范例 |
---|---|
iso 日期 | "2018-02-19" (國際標準) |
短日期 | "02/19/2018" 或者 "2018/02/19" |
長日期 | "feb 19 2018" 或者 "19 feb 2019" |
完整日期 | "monday february 25 2015" |
iso 格式遵守 javascript 中的嚴格標準。
其他格式不太明確,可能是瀏覽器特定的。
1. javascript 日期輸出
無論輸入格式如何,javascript 默認將輸出全文本字符串格式:
mon feb 19 2018 06:00:00 gmt+0800 (中國標準時間)
2. javascript iso 日期
iso 8601 是表現(xiàn)日期和時間的國際標準。
iso 8601 語法 (yyyy-mm-dd) 也是首選的 javascript 日期格式:
范例(完整日期)
var d = new date("2018-02-19");
計算的日期相對于您的時區(qū)。
根據(jù)您的時區(qū),上面的結(jié)果將在 2 月 18 日至 2 月 19 日之間變化。
3. iso 日期(年和月)
寫日期也可以不規(guī)定具體某日 (yyyy-mm):
var d = new date("2015-03");
時區(qū)會對結(jié)果在 2 月 28 日至 3 月 1 日之間產(chǎn)生變化。
4. iso 日期(只有年)
寫日期也可以不規(guī)定具體的月和日 (yyyy):
var d = new date("2018");
時區(qū)會對結(jié)果在 2017 年 12 月 31 日至 2018 年 1 月 1 日之間產(chǎn)生變化。
5. iso 日期(完整的日期加時、分和秒)
寫日期也可以添加時、分和秒 (yyyy-mm-ddthh:mm:ss):
var d = new date("2018-02-19t12:00:00");
日期和時間通過大寫字母 t 來分隔。
utc 時間通過大寫字母 z 來定義。
如果您希望修改相對于 utc 的時間,請刪除 z 并用 +hh:mm 或 -hh:mm 代替:
范例
var d = new date("2018-02-19t12:00:00-08:30");
utc(universal time coordinated)等同于 gmt(格林威治時間)。
注釋:utc,協(xié)調(diào)世界時,又稱世界統(tǒng)一時間,世界標準時間,國際協(xié)調(diào)時間。
在日期-時間字符串中省略 t 或 z,在不同瀏覽器中會產(chǎn)生不同結(jié)果。
6. 時區(qū)
在設置日期時,如果不規(guī)定時區(qū),則 javascript 會使用瀏覽器的時區(qū)。
當獲取日期時,如果不規(guī)定時區(qū),則結(jié)果會被轉(zhuǎn)換為瀏覽器時區(qū)。
換句話說,假如日期/時間以 gmt(格林威治標準時間)創(chuàng)建,該日期/時間將被轉(zhuǎn)換為 cst(中國標準時間),如果用戶從中國進行瀏覽。
7. javascript 短日期
短日期通常使用 "mm/dd/yyyy" 這樣的語法:
范例
var d = new date("02/19/2018");
8. 警告
在某些瀏覽器中,不帶前導零的月或其會產(chǎn)生錯誤:
var d = new date("2018-2-19");
“yyyy / mm / dd”的行為未定義。
有些瀏覽器會嘗試猜測格式。有些會返回 nan。
var d = new date("2018/02/19");
“dd-mm-yyyy”的行為也是未定義的。
有些瀏覽器會嘗試猜測格式。有些會返回 nan。
var d = new date("19-02-2018");
9. javascript 長日期
長日期通常以 "mmm dd yyyy" 這樣的語法來寫:
范例
var d = new date("feb 19 2018");
月和天能夠以任意順序出現(xiàn):
范例
var d = new date("19 feb 2018");
并且,月能夠以全稱 (january) 或縮寫 (jan) 來寫:
范例
var d = new date("february 19 2018");
范例
var d = new date("feb 19 2018");
逗號會被忽略,且對大小寫不敏感:
范例
var d = new date("february, 25, 2015");
10. javascript 完整日期
javascript 接受“完整 javascript 格式”的日期字符串:
范例
var d = new date("mon feb 19 2018 06:55:23 gmt+0100 (w. europe standard time)");
javascript 會忽略日期名稱和時間括號中的錯誤:
范例
var d = new date("fri mar 26 2018 09:56:24 gmt+0100 (tokyo time)");