为什么新的Date()。setHours(18)会返回一个数字而不是一个日期?

时间:2016-12-14 17:20:48

标签: javascript date typescript ionic2

为什么第一行代码返回类型" Date"而第二个返回一个"数字" ?

根据doc(http://www.w3schools.com/jsref/jsref_sethours.asp),setHours()应该只改变日期对象的小时值,而不是转换它。

代码:

  var date = new Date();

  var date2 =date.setHours(19);

谢谢!

4 个答案:

答案 0 :(得分:3)

setHours()方法根据本地时间设置指定日期的小时数,并返回自1970年1月1日00:00:00 UTC以来直到更新的Date实例所代表的时间的毫秒数。

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

答案 1 :(得分:0)

  

根据doc(http://www.w3schools.com/jsref/jsref_sethours.asp),setHours()应该只改变日期对象的小时值,而不是转换它。

该文件说:

  

返回值:一个数字,表示日期对象与1970年1月1日午夜之间的毫秒数

它不会转换日期对象。它修改现有的,然后返回一个值。

您之前创建的日期对象仍然存在,具有修改后的小时值,并且对它的任何引用(如您在名为date的变量中仍然具有的引用)将保持可用。

答案 2 :(得分:0)

这很简单,只需阅读documentation即可。

请参阅下面该方法返回的内容。

  

返回值

     

1970年1月1日00:00:00 UTC与之间的毫秒数   更新日期。

答案 3 :(得分:0)

您需要将答案包装在new Date()中。像这样:

var date2 = new Date(date.setHours(19));