3 回答

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
似乎從UTC日期開始最簡單的方法是創(chuàng)建一個(gè)新Date
對(duì)象并使用這些setUTC…
方法將其設(shè)置為您想要的日期/時(shí)間。
然后各種toLocale…String
方法將提供本地化輸出。
例:
// This would come from the server.
// Also, this whole block could probably be made into an mktime function.
// All very bare here for quick grasping.
d = new Date();
d.setUTCFullYear(2004);
d.setUTCMonth(1);
d.setUTCDate(29);
d.setUTCHours(2);
d.setUTCMinutes(45);
d.setUTCSeconds(26);
console.log(d); // -> Sat Feb 28 2004 23:45:26 GMT-0300 (BRT)
console.log(d.toLocaleString()); // -> Sat Feb 28 23:45:26 2004
console.log(d.toLocaleDateString()); // -> 02/28/2004
console.log(d.toLocaleTimeString()); // -> 23:45:26
一些參考:

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
對(duì)于新項(xiàng)目,只需使用moment.js
這個(gè)問題已經(jīng)過時(shí)了,所以當(dāng)時(shí)并不存在moment.js,但對(duì)于新項(xiàng)目,它簡化了很多這樣的任務(wù)。
最好從UTC 解析日期字符串,如下所示(在服務(wù)器上創(chuàng)建一個(gè)ISO-8601兼容字符串,以便在所有瀏覽器中獲得一致的結(jié)果):
var m = moment("2013-02-08T09:30:26Z");
現(xiàn)在只需m
在您的應(yīng)用程序中使用,moment.js默認(rèn)為本地時(shí)區(qū)進(jìn)行顯示操作。有許多方法可以格式化日期和時(shí)間值或提取部分值。
您甚至可以在用戶區(qū)域設(shè)置中格式化一個(gè)時(shí)刻對(duì)象,如下所示:
m.format('LLL') // Returns "February 8 2013 8:30 AM" on en-us
要將moment.js對(duì)象轉(zhuǎn)換為不同的時(shí)區(qū)(即既不是本地時(shí)區(qū)也不是UTC),您將需要moment.js時(shí)區(qū)擴(kuò)展。該頁面還有一些示例,使用起來非常簡單。
添加回答
舉報(bào)