为了账号安全,请及时绑定邮箱和手机立即绑定

以秒为单位获取两个日期之间的时差

以秒为单位获取两个日期之间的时差

largeQ 2019-09-24 09:59:17
我试图在几秒钟之内得到两个日期之间的差异。逻辑将是这样的:设置一个初始日期,即现在;设置最终日期,该日期将是初始日期加上将来的秒数(例如,假设15)得到这两者之间的差(秒数)之所以使用日期来做,是因为最终的日期/时间取决于其他一些变量,并且永远都不相同(取决于用户执行操作的速度),并且我还存储其他日期的初始日期。我一直在尝试这样的事情:var _initial = new Date(),    _initial = _initial.setDate(_initial.getDate()),    _final = new Date(_initial);    _final = _final.setDate(_final.getDate() + 15 / 1000 * 60);var dif = Math.round((_final - _initial) / (1000 * 60));问题是我永远都不会得到正确的区别。我尝试过除以除以24 * 60秒,但我从来没有做对。那我的逻辑怎么了?我可能会犯一些愚蠢的错误,因为已经很晚了,但是我不敢让它正常工作:)
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

编码

var startDate = new Date();

// Do your operations

var endDate   = new Date();

var seconds = (endDate.getTime() - startDate.getTime()) / 1000;

甚至(endDate - startDate) / 1000如注释中指出的那样更简单,除非您使用打字稿。


说明

您需要调用对象的getTime()方法Date,然后简单地将它们相减并除以1000(因为它最初以毫秒为单位)。另外,调用getDate()方法时,实际上是将月份中的日期作为1到31之间的整数(不是从零开始),而不是从调用该getTime()方法获得的时间开始,代表自1970年1月1日00:00以来的毫秒数


胡言乱语

根据与日期相关的操作的不同,您可能需要投资集成诸如date.js或moment.js之类的库,这对于开发人员而言使事情变得容易得多,但这只是个人喜好问题。


例如,在moment.js中,我们将做的moment1.diff(moment2, "seconds")很漂亮。


查看完整回答
反对 回复 2019-09-24
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

<script type="text/javascript">

var _initial = '2015-05-21T10:17:28.593Z';

var fromTime = new Date(_initial);

var toTime = new Date();


var differenceTravel = toTime.getTime() - fromTime.getTime();

var seconds = Math.floor((differenceTravel) / (1000));

document.write('+ seconds +');

</script>


查看完整回答
反对 回复 2019-09-24
?
动漫人物

TA贡献1815条经验 获得超10个赞

您可以new Date().getTime()用来获取时间戳。然后,您可以计算结束和开始之间的差异,最后将时间戳转换ms为s。


const start = new Date().getTime();

const end = new Date().getTime();


const diff = end - start;

const seconds = Math.floor(diff / 1000 % 60);


查看完整回答
反对 回复 2019-09-24
  • 3 回答
  • 0 关注
  • 350 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号