2 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
不要理會(huì)那些。使用各種輸出功能,例如.format()
。 請(qǐng)參閱有關(guān)此主題的Moment.js指南。
由于Date
對(duì)象的工作原理,內(nèi)部時(shí)刻有一些怪癖。公共API中的所有函數(shù)都將它們考慮在內(nèi),但您可能不希望自己弄清楚它們。
盡管如此,我會(huì)詳細(xì)說明他們的目的:
_i
是創(chuàng)建對(duì)象時(shí)使用的輸入moment
。它可以是字符串,數(shù)字,數(shù)組或Date
對(duì)象。但是,如果
moment
傳入另一個(gè)對(duì)象,_i
則會(huì)將其復(fù)制到該時(shí)刻_i
,并且還將復(fù)制其他屬性。_i
永遠(yuǎn)不會(huì)成為一個(gè)moment
對(duì)象。_i
在創(chuàng)建當(dāng)前時(shí)刻的情況下,也可以是未定義的moment()
。_d
是Date
支持moment
對(duì)象的對(duì)象的實(shí)例。如果您處于“本地模式”,那么
_d
將具有與對(duì)象展示的公共API相同的本地日期和時(shí)間。返回的時(shí)間戳getTime
或valueOf
將匹配的時(shí)間戳。如果您處于“UTC模式”,那么
_d
仍將具有與對(duì)象展示公共API時(shí)相同的UTC日期和時(shí)間。這可能會(huì)令人困惑,因?yàn)槟枰榭?code>getUTCDate其他基于UTC的函數(shù)_d
才能看到它們匹配。這里的時(shí)間戳仍然匹配。如果你已經(jīng)改變了時(shí)區(qū)偏移量,與
utcOffset
,zone
或tz
功能,則_d
值不能單獨(dú)。它還必須考慮是否_offset
已定義。如果是,那么_d
必須首先通過偏移量來調(diào)整支持對(duì)象的時(shí)間戳。您可以在此處的valueOf
方法實(shí)現(xiàn)中看到此行為。
這是當(dāng)前版本的這兩個(gè)字段的行為(2.10.6,因?yàn)槲艺趯戇@個(gè))。但是,還有其他字段,因?yàn)檫@些是內(nèi)部字段,所以在將來的版本中行為可能會(huì)發(fā)生變化。特別是,請(qǐng)參閱問題#2616。

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
作為@Matt答案的補(bǔ)充:
從chrome控制臺(tái)查看此結(jié)果:
date1是片刻的有效對(duì)象:
如您所見,._ d和._i具有不同的值。因此,您最好在源代碼中使用format()函數(shù)(如@Matt Johnson所寫)。
添加回答
舉報(bào)