猿问

如何在JavaScript中得到两个日期之间的区别?

如何在JavaScript中得到两个日期之间的区别?

我正在创建一个应用程序,它允许您定义具有时间框架的事件。当用户选择或更改开始日期时,我想自动填写结束日期。但是,我不太清楚如何得到这两次之间的差异,然后如何利用这一差异创建一个新的结束日期。



慕莱坞森
浏览 491回答 3
3回答

慕田峪7331174

在JavaScript中,可以通过调用getTime()方法或只是在数字表达式中使用日期。因此,为了得到差异,只需减去这两个日期。若要根据差异创建新日期,只需传递构造函数中的毫秒数即可。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)

人到中年有点甜

见JsFiddle演示&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;date1&nbsp;=&nbsp;new&nbsp;Date();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;date2&nbsp;=&nbsp;new&nbsp;Date("2025/07/30&nbsp;21:59:00"); &nbsp;&nbsp;&nbsp;&nbsp;//Customise&nbsp;date2&nbsp;for&nbsp;your&nbsp;required&nbsp;future&nbsp;time &nbsp;&nbsp;&nbsp;&nbsp;showDiff();function&nbsp;showDiff(date1,&nbsp;date2){ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;diff&nbsp;=&nbsp;(date2&nbsp;-&nbsp;date1)/1000; &nbsp;&nbsp;&nbsp;&nbsp;diff&nbsp;=&nbsp;Math.abs(Math.floor(diff)); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;days&nbsp;=&nbsp;Math.floor(diff/(24*60*60)); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;leftSec&nbsp;=&nbsp;diff&nbsp;-&nbsp;days&nbsp;*&nbsp;24*60*60; &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;hrs&nbsp;=&nbsp;Math.floor(leftSec/(60*60)); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;leftSec&nbsp;=&nbsp;leftSec&nbsp;-&nbsp;hrs&nbsp;*&nbsp;60*60; &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;min&nbsp;=&nbsp;Math.floor(leftSec/(60)); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;leftSec&nbsp;=&nbsp;leftSec&nbsp;-&nbsp;min&nbsp;*&nbsp;60; &nbsp;&nbsp;&nbsp;&nbsp;document.getElementById("showTime").innerHTML&nbsp;=&nbsp;"You&nbsp;have&nbsp;"&nbsp;+&nbsp;days&nbsp;+&nbsp;"&nbsp;days&nbsp;"&nbsp;+&nbsp;hrs&nbsp;+&nbsp;"&nbsp;hours&nbsp;"&nbsp;+&nbsp;min&nbsp;+&nbsp;"&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;minutes&nbsp;and&nbsp;"&nbsp;+&nbsp;leftSec&nbsp;+&nbsp;"&nbsp;seconds&nbsp;before&nbsp;death.";setTimeout(showDiff,1000);}对于HTML代码:<div&nbsp;id="showTime"></div>
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答