2017-05-08 128 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对象,而是代表日期毫秒的数字。