Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 从新日期减去1小时,得到奇怪的结果_Angular_Typescript - Fatal编程技术网

Angular 从新日期减去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和

我试图得到当前日期时间减去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和更新日期之间的毫秒数


下面的示例演示了。

时间减法没有问题,您打印的值是日期的时间戳,即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);