首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript返回两个日期之间的天数、小时数、分钟数、秒数

Javascript返回两个日期之间的天数、小时数、分钟数、秒数
EN

Stack Overflow用户
提问于 2012-12-17 01:48:57
回答 21查看 182.7K关注 0票数 84

有没有人可以链接到一些教程,在那里我可以了解如何在两个unix日期时间之间返回javascript中的日、小时、分钟、秒?

我有:

代码语言:javascript
运行
复制
var date_now = unixtimestamp;
var date_future = unixtimestamp;

我想返回(实时)多少天,小时,分钟,秒从date_now到date_future。

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2012-12-17 02:13:08

只需计算出以秒为单位的差异(不要忘记JS时间戳实际上是以毫秒为单位测量的),然后分解该值:

代码语言:javascript
运行
复制
// get total seconds between the times
var delta = Math.abs(date_future - date_now) / 1000;

// calculate (and subtract) whole days
var days = Math.floor(delta / 86400);
delta -= days * 86400;

// calculate (and subtract) whole hours
var hours = Math.floor(delta / 3600) % 24;
delta -= hours * 3600;

// calculate (and subtract) whole minutes
var minutes = Math.floor(delta / 60) % 60;
delta -= minutes * 60;

// what's left is seconds
var seconds = delta % 60;  // in theory the modulus is not required

编辑代码进行了调整,因为我刚刚意识到原始代码返回的是总小时数等,而不是计算整天后剩下的小时数。

票数 203
EN

Stack Overflow用户

发布于 2012-12-17 03:13:52

下面是javascript中的代码:(例如,未来的日期是元旦)

(每秒更新一次)

代码语言:javascript
运行
复制
var dateFuture = new Date(new Date().getFullYear() +1, 0, 1);
var dateNow = new Date();

var seconds = Math.floor((dateFuture - (dateNow))/1000);
var minutes = Math.floor(seconds/60);
var hours = Math.floor(minutes/60);
var days = Math.floor(hours/24);

hours = hours-(days*24);
minutes = minutes-(days*24*60)-(hours*60);
seconds = seconds-(days*24*60*60)-(hours*60*60)-(minutes*60);
票数 51
EN

Stack Overflow用户

发布于 2012-12-17 02:02:49

请注意,仅以差异计算并不能涵盖所有情况:闰年和转换“夏令时”。

Javascript在处理日期方面的内置库很差。我建议你使用第三方javascript库,例如MomentJS;你可以看到here你正在寻找的函数。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13903897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档