我想知道为什么这两个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
为什么会这样?
答案 0 :(得分:9)
twoLinesSetup
包含实例化Date
构造函数的返回值,该构造函数返回一个新的Date
实例对象。
inlineSetup
包含setHours
方法的返回值,该方法返回the number of milliseconds since 1 January 1970 00:00:00 UTC
答案 1 :(得分:2)
inlineSetup存储setHours的返回值。日期对象与1970年1月1日午夜之间的“A Number, representing the number of milliseconds”
twoLinesSetup是一个实际的对象,你可以操作它。控制台输出 - “toString”方法,如果你想要它,就是你看到的格式化字符串表示。
理论上,你应该通过twoLinesSetup.getTime()看到相同的数字。
答案 2 :(得分:0)
您要将setHours()
来电的返回值分配给inlineSetup
。这不是Date
对象,而是一个表示日期毫秒的数字。