这适用于Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
但是在打字稿中我不能休息两个新的日期
Date("2013-02-20T12:01:04.753Z")
因为paremater与日期签名不匹配而无法工作
答案 0 :(得分:108)
使用getTime
method获取自1970-01-01以来的总毫秒时间,并减去这些时间:
var time = new Date().getTime() - new Date("2013-02-20T12:01:04.753Z").getTime();
答案 1 :(得分:82)
这是应该在打字稿中完成的:
(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();
答案 2 :(得分:16)
它不起作用,因为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()
答案 3 :(得分:3)
为了计算你必须放置+运算符的差异,那么打字稿将日期转换为数字。
+ new Date() - + new date(" 2013-02-20T12:01:04.753Z")
从那里你可以制定一个公式,将差异转换为分钟或小时。
答案 4 :(得分:1)
// TypeScript
const today = new Date();
const firstDayOfYear = new Date(today.getFullYear(), 0, 1);
// Explicitly convert Date to Number
const pastDaysOfYear = ( Number(today) - Number(firstDayOfYear) );