当前位置: 首页 > 知识库问答 >
问题:

片刻js在dd:hh:mm:ss格式中获得两个日期之间的差异?

欧阳晗日
2023-03-14

我正在计算时间,直到当天晚上11:59。下面是一个例子。

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.js"></script>
<script>

    setInterval(function() {

        var now = moment();
        var mid = moment();
        mid = mid.endOf('day');

        var diffHours = mid.diff(now, 'hours');
        var diffMinutes = mid.diff(now, 'minutes');
        var diffSeconds = mid.diff(now, 'seconds');

        console.log(diffHours + "h " + diffMinutes + "m " + diffSeconds + "s");

    }, 1000)

</script>

然而,我希望它能告诉我一个时间,比如20H13M49,而不是我得到20H1255M73500

我知道这是预期的工作,但我如何才能实现我所寻求的格式?

共有2个答案

齐航
2023-03-14

这是大卫·斯坦普的时刻,仅供比较。js示例来自另一个答案上的评论,给出了截至23:59:59.999“today”的时间,以及在普通js中的相同功能:

// Moment.js version
var now = moment();
var mid = moment();
mid = mid.endOf('day');
var diff1 = moment.utc(moment(mid, "DD/MM/YYYY HH:mm:ss")
             .diff(moment(now, "DD/MM/YYYY HH:mm:ss")))
           .format("HH:mm:ss");

console.log('moment.js: ' + diff1);

// POJS version
var z = (n) => (n<10? '0' : '') + n;
var ms = new Date().setHours(23,59,59,999) - new Date();
var diff2 = z(ms/3.6e6|0) + ':' +
            z(ms%3.6e6/6e4|0) + ':' +
            z(ms%6e4/1e3|0);

console.log('plain js : ' + diff2);
html prettyprint-override"><script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>
丁曦哲
2023-03-14

您需要在每个diff之后立即修改变量。

var hours = mid.diff(now, 'hours'); //Get hours 'till end of day
now.hours(now.hours() + hours);
var minutes = mid.diff(now, 'minutes');

 类似资料:
  • 我可以使用MomentJs获得两个日期之间的差异,如下所示: 但是,我还想在适用的情况下显示小时(仅当>=60分钟过去时)。 但是,当我尝试使用以下命令检索持续时间小时数时: 它返回的是当前小时,而不是两个日期之间的小时数。 我如何得到两个时刻之间的小时差?

  • 问题内容: 我可以使用MomentJs获得两个日期之间的差异,如下所示: 但是,我也想在适用时显示小时(仅当> = 60分钟过去时)。 但是,当我尝试使用以下方法检索工时时数: 它返回的是当前时间,而不是两个日期之间的小时数。 如何获得两个时刻之间的小时数差异? 问题答案: 你近了您只需要使用该方法请参阅docs。

  • 问题内容: Java类库具有一个名为DateTime的类。DateTime具有此方法: 该参数返回此参数与参数之间的天数。它没有方法 我碰巧需要的。是否有一个类似于DateTime但有这种方法的类? 问题答案: 不熟悉DateTime … 如果您有两个日期,则可以对它们调用getTime以获取毫秒,获取diff并除以1000。例如 如果您有日历对象,则可以调用 并做同样的

  • 如何获得之间的差异2日期在年,月和天使用moment.js?例如之间的差异4/5/2014

  • 问题内容: 如何以格式计算两个日期之间的差并以秒或毫秒为单位获取结果? 问题答案: 因此,您可以为您的目的使用。

  • 问题内容: 功能: 我的要求是找出几年中两个日期之间的差异。所以,我写了上面的函数。在此,如果d1为NULL,则将其分配为当前日期。但是,它会产生如下所示的错误。 有没有人能帮助我解决这个问题。 问题答案: 尝试 : 函数以以下格式返回两个日期之间的年,月和天数: 从此输出中使用,以选择唯一的年份差异。也没有必要把if语句来处理,因为我已经添加返回第一值,所以,如果是它返回 功能结构: 函数调用: