gpt4 book ai didi

javascript - JS 自某个日期以来耗时

转载 作者:行者123 更新时间:2023-11-28 19:49:02 25 4
gpt4 key购买 nike

我想计算两个日期之间耗时。我在互联网上看到了一些例子(大部分都在这个网站上),但没有发现任何有用的东西。我想写一个可以这样调用的函数:

calculateDifference('2012-02-01 15:31')

没有第二个参数,因为它是当前日期。我当前正在使用的代码是:

    function get_time_diff(_datetime )
{
var datetime = new Date( _datetime ).getTime();
var now = new Date().getTime();

if( isNaN(datetime) )
{
return " on " + _datetime;
}


if (datetime < now) {
var milisec_diff = now - datetime;
}else{
var milisec_diff = datetime - now;
}

var days = Math.floor(milisec_diff / 1000 / 60 / (60 * 24));

var date_diff = new Date( milisec_diff );
var respvalue ='';

if (days > 0) {
respvalue += days + " day(s), ";
}

if (date_diff.getHours() > 0) {
respvalue += (date_diff.getHours() - 1) + " hour(s) and ";
}

respvalue += date_diff.getMinutes() + " minute(s) ago.";
return respvalue;
}

结果是并且应该是:

1 day(s), 14 hour(s) and 17 minute(s)

由于某些原因,存在差异(当 1 天过去时,它显示 0 等),并且它仅适用于 chrome,在 IE 和 FF 中,它返回我作为参数传递的日期。再说一遍:我想计算当前日期和给定日期之间的差异,格式如下:

1 day(s), 14 hour(s) and 17 minute(s)

我不在乎几个月、几年。只有小时、分钟和秒。预先感谢您!

最佳答案

试试这个:

  function get_time_diff(_datetime )
{
var datetime = new Date( _datetime ).getTime();
var now = new Date().getTime();

if( isNaN(datetime) )
{
return " on " + _datetime;
}


if (datetime < now) {
var milisec_diff = now - datetime;
}else{
var milisec_diff = datetime - now;
}

var days = Math.floor(milisec_diff / 1000 / 60 / (60 * 24));
var hours = Math.floor(milisec_diff / (1000 * 60 * 60) - days * 24);
var minutes = Math.floor(milisec_diff / (1000 * 60) - days * 24 * 60 - hours * (60));

var respvalue ='';

if (days > 0) {
respvalue += days + " day(s), ";
}

if (hours > 0) {
respvalue += hours + " hour(s) and ";
}

respvalue += minutes + " minute(s) ago.";

return respvalue;
}

关于javascript - JS 自某个日期以来耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23811273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com