2016-12-14 15 views
0

爲什麼第一行代碼返回「Date」類型的對象,而第二行返回「Number」?爲什麼新的Date().setHours(18)返回一個數字而不是日期?

根據文檔(http://www.w3schools.com/jsref/jsref_sethours.asp)setHours()應該只是更改日期對象的小時的值,而不是轉換它。

代碼:

var date = new Date(); 

    var date2 =date.setHours(19); 

謝謝!

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours查看文檔。它爲指定日期設置小時數,並返回時間戳。 – CollinD

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours – Deep

+0

查看'date'對象的實際值...您會看到它已設置如你所述。 –

回答

0

根據美國商務部(http://www.w3schools.com/jsref/jsref_sethours.asp)調用setHours()應該只是更改日期對象的小時值,而不是將其轉換。

該文件說:

返回值:一個數字,較1970年1月1日

日期對象和午夜之間的毫秒數它不轉換的日期對象。它修改現有的一個,然後返回一個值。

您之前創建的日期對象仍然存在,其中包含已修改的小時值以及對它的任何引用(如您在名爲date的變量中仍然存在的那個)仍然可用。

+0

此答案應參考[* ECMA-262 *](http://ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.sethours)或[* MDN *](https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours)。 – RobG

+0

@RobG - 雖然W3Schools有很多問題,但在這裏是正確的,它是OP已經閱讀的文檔。 – Quentin

0

這很簡單,只需閱讀documentation即可。

請參閱下面的方法返回。

返回值

毫秒的1970年UTC 00:00:00 1月1日和 更新日期之間的數字。

相關問題