2017-05-08 115 views
1

我想知道爲什麼這兩個Date對象在控制檯中有不同的輸出。在我看來,這應該是相同的,但我可能是錯的:)這些Date對象爲什麼不同?

var twoLinesSetup = new Date(); 
 
twoLinesSetup.setHours(0, 0, 0); 
 
var inlineSetup = new Date().setHours(0, 0, 0) 
 

 
console.log('twoLinesSetup', twoLinesSetup); 
 
console.log('inlineSetup', inlineSetup);

和控制檯

twoLinesSetup:週一2017年5月8日00:00:00 GMT + 0200

inlineSetup:1494194400521

這是爲什麼?

+5

因爲'setHours()'返回的毫秒數不是'Date'實例?! – Bergi

回答

2

inlineSetup存儲調用setHours的返回值返回值。它是「日期對象和1970年1月1日午夜之間的」A Number, representing the number of milliseconds

twoLinesSetup是一個實際的對象,您可以操作它。控制檯輸出 - 「toString」方法,如果你想這樣做,是你看到的格式化的字符串表示。

理論上你應該通過做twoLinesSetup.getTime()看到相同的數字。

0

您正在將setHours()調用的返回值分配給inlineSetup。這不是Date對象,而是代表日期毫秒的數字。