这在Javascript中是有效的
new Date() - new Date("2013-02-20T12:01:04.753Z")
但在打字稿中,我不能休息两个新的日期
Date("2013-02-20T12:01:04.753Z")
不工作,因为父母不匹配日期签名
这在Javascript中是有效的
new Date() - new Date("2013-02-20T12:01:04.753Z")
但在打字稿中,我不能休息两个新的日期
Date("2013-02-20T12:01:04.753Z")
不工作,因为父母不匹配日期签名
使用getTime方法获得自1970-01-01以来的总毫秒数的时间,并减去它们:
var time = new Date().getTime() - new Date("2013-02-20T12:01:04.753Z").getTime();
它不能工作,因为Date - Date依赖的正是TypeScript设计用来防止的类型强制。
有一个使用+前缀的变通方法:
var t = Date.now() - +(new Date("2013-02-20T12:01:04.753Z"));
或者,如果你不喜欢使用Date.now():
var t = +(new Date()) - +(new Date("2013-02-20T12:01:04.753Z"));
请看这里的讨论。
或者参见下面Siddharth Singh的回答,使用valueOf()获得更优雅的解决方案
这是在typescript中应该做的:
(new Date()).valueOf() - (new Date("2013-02-20T12:01:04.753Z")).valueOf()
更好的可读性:
var eventStartTime = new Date(event.startTime);
var eventEndTime = new Date(event.endTime);
var duration = eventEndTime.valueOf() - eventStartTime.valueOf();
为了计算差值,你必须加上+运算符,
这样,typescript将日期转换为数字。
+new Date()- +new Date("2013-02-20T12:01:04.753Z")
从这里你可以制作一个公式,将差值转换为分钟或小时。
// TypeScript
const today = new Date();
const firstDayOfYear = new Date(today.getFullYear(), 0, 1);
// Explicitly convert Date to Number
const pastDaysOfYear = ( Number(today) - Number(firstDayOfYear) );