Answers:
使用该getTime
方法获取自1970-01-01以来的总时间(以毫秒为单位),然后减去这些时间:
var time = new Date().getTime() - new Date("2013-02-20T12:01:04.753Z").getTime();
new Date(1970, 1, 1, 0, 0, 0, 0).valueOf() // returns 2674800000 new Date(1970, 1, 1, 0, 0, 0, 0).getTime() // returns 2674800000
new Date().getTime()
use,Date.now()
这样您就不必不必要地制作新对象。
这是应该在打字稿中完成的方式:
(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();
eventStartTime
并且eventEndTime
持续时间也被键入为a number
(这意味着如果您从字面上接受此处的第三行代码,这里持续时间将是一个数字)
这是行不通的,因为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()