的JS文檔Date
聲稱有使用Date
構造四種方式。從https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date:調用Date構造函數Date對象
new Date();
new Date(value); // integer
new Date(dateString); // string
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
然而,似乎是使用構造函數,通過傳遞一個有效的Date對象的第五種方式。例如,下面的鉻控制檯正常工作:
date = new Date() // Wed Sep 02 2015 16:30:21 GMT-0700 (PDT)
date2 = new Date(date) // Wed Sep 02 2015 16:30:21 GMT-0700 (PDT)
它們是不同的對象,因此它似乎是一個簡單的方法,使一個日期的一個副本:
date2 === date // false
date.setMonth(1) // 1422923421090
date // Mon Feb 02 2015 16:30:21 GMT-0800 (PST)
date2 // Wed Sep 02 2015 16:30:21 GMT-0700 (PDT)
所以我的問題是:
- 爲什麼這不是正式文件?我錯過了什麼嗎?
- 這是一個正式支持使用構造的?它可以在所有平臺/瀏覽器上運行嗎?
- 這是使
Date
對象的副本一個安全的方式,例如更換date2 = new Date().setTime(date.getTime())
?
它在Firefox中工作,但結果與原始的時間戳不完全相同(毫秒被截斷)。只需運行該示例幾次:[jsfiddle](https://jsfiddle.net/at51o4aw/) – lzydrmr