在Javascript中,可以通过调用
getTime()方法 或 仅在数字表达式中使用日期将日期转换为自epoc以来的毫秒数。
因此,要获得差异,只需减去两个日期。
要基于差异创建新日期,只需在构造函数中传递毫秒数即可。
var oldBegin = ...var oldEnd = ...var newBegin = ...var newEnd = new Date(newBegin + oldEnd - oldBegin);
这应该工作
编辑 :修正了@bdukes指出的错误
编辑 :
对于行为的解释,
oldBegin,
oldEnd,和
newBegin是
Date实例。调用运营商
+和
-触发的Javascript汽车铸件,并会自动调用
valueOf()这些对象的原型方法。碰巧该
valueOf()方法在
Date对象中实现为对的调用
getTime()。
所以基本上:
date.getTime() === date.valueOf() === (0 + date) === (+date)



