Angular 从新日期减去1小时,得到奇怪的结果
我试图得到当前日期时间减去1小时,结果很奇怪 我的代码Angular 从新日期减去1小时,得到奇怪的结果,angular,typescript,Angular,Typescript,我试图得到当前日期时间减去1小时,结果很奇怪 我的代码 让myDate=新日期(); 让myStartDate=myDate.setHours(myDate.getHours()-1); 我今天10:15(2019年8月18日)运行了这个程序,从console.log(myStartDate)获得了15661120101 不知道那是什么,有什么想法吗 我的目标 我想要今天的日期和时间减去当地时间的1小时。这就是预期返回的日期和时间。根据: 返回值: 1970年1月1日00:00:00 UTC和
让myDate=新日期();
让myStartDate=myDate.setHours(myDate.getHours()-1);
我今天10:15(2019年8月18日)运行了这个程序,从console.log(myStartDate)获得了15661120101
代码>
不知道那是什么,有什么想法吗
我的目标
我想要今天的日期和时间减去当地时间的1小时。这就是预期返回的日期和时间。根据:
返回值:
1970年1月1日00:00:00 UTC和更新日期之间的毫秒数
下面的示例演示了。时间减法没有问题,您打印的值是日期的时间戳,即1970年某个时间之后经过的秒(或毫秒)。如果要以日期格式对其进行分析,可以:
let inDate = new Date(myStartDate)
console.log(inDate) // prints 2019-08-18T08:45:39.923Z
这并不是Date.setHours()的工作原理。它不返回修改后的日期,而是更改原始日期并返回时间戳
因此,在您的例子中,时间戳在myStartDate
中,修改日期在myDate
中
请注意,这不是设置“提前一小时”日期的安全方法,因为它可能会在夏季的地区中断。使用Date.getUTCHours()
和Date.setUTCHours()
,或者我认为最好使用时间戳:
let myDate = new Date();
let myStartDate = new Date(myDate - 60 * 60 * 1000);
如果您阅读setHours()的文档,这是意料之中的。你还期待什么?为什么?如果要打印更新的日期,请打印myDate,而不是setHours()返回的值。
let myDate = new Date();
let myStartDate = new Date(myDate - 60 * 60 * 1000);