【问题标题】:Best way to accurately calculate the time between Today and another date?准确计算今天和另一个日期之间时间的最佳方法?
【发布时间】:2020-09-23 11:27:33
【问题描述】:

计算今天到 9 月 12 日之间天数的最佳方法是什么?

我尝试寻找类似的问题,但他们要求的是 2 个固定日期之间的天数。每次页面刷新时,我的“今天”日期都会改变。

同样在其他问题中,“其他日期”始终设置为中午。这会扭曲我的日子,因为我的“今天”日期不会从中午开始。它将从“今天”开始,无论时间是什么 - 不是中午。

【问题讨论】:

  • 今天的日期是固定的。
  • 您可以使用new Date() 设置当前日期,其他日期为9 月12 日。您已经搜索过的其余部分
  • @ShubhamKhatri 是的,但在其他问题中,他们总是将“其他日期”设置为中午。这会扭曲我的日子,因为我的“今天”日期不会从中午开始。它将从“今天”开始,无论时间是什么 - 不是中午。
  • 在比较之前将两个日期都转换为UTC
  • 一天中的时间不会改变它是哪一天。

标签: javascript reactjs


【解决方案1】:

可能是这样的:

var start_time = new Date();
    var end_time = new Date('2020-09-12T00:00:01');
    var timeDiff = end_time - start_time;
    timeDiff /= 1000;
    var seconds = Math.round(timeDiff);

    var h = Math.floor(seconds / 3600);
    var d = Math.floor(h / 24);
    h %= 24;
    seconds %= 3600;
    var m = Math.floor(seconds / 60);
    var s = seconds % 60;

    var elapsed_time = '';

    if(h>0){
    	if(h<10){h='0'+h;}
    	if(m<10){m='0'+m;}
    	if(s<10){s='0'+s;}
    	elapsed_time = h + ':' + m + ':' + s;
    }else if(m>0){
    	if(m<10){m='0'+m;}
    	if(s<10){s='0'+s;}
    	elapsed_time =  m + ':' + s;
    }else if(s>0){
    	if(s<10){s='0'+s;}
    	elapsed_time =  s +' sec.';
    }
    if(d>0){
    	elapsed_time = d+' days and ' +elapsed_time;
    }
    console.log('elapsed days -> ' +d);
    console.log('full format -> ' +elapsed_time);

【讨论】:

    猜你喜欢
    • 2014-06-17
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 2013-09-16
    • 2021-07-24
    • 2013-11-29
    • 2012-07-08
    • 1970-01-01
    相关资源
    最近更新 更多