Momentjs - 时差

时间:2016-12-24 09:04:49

标签: javascript momentjs

欢迎!我有一个问题。如何使用moment.js显示两个输入的差异?现在我有这个代码:

{{1}}

它不起作用不知道为什么

4 个答案:

答案 0 :(得分:0)

你可以在几秒钟内获得差异。我试着找到doc的那一刻,并且无法找到如何解析为特定的时间格式,然后可能需要编写。

function pad(num) {
    return ("0"+num).slice(-2);
}
function hhmmss(secs) {
  var minutes = Math.floor(secs / 60);
  secs = secs%60;
  var hours = Math.floor(minutes/60)
  minutes = minutes%60;
  return pad(hours)+":"+pad(minutes)+":"+pad(secs);
}

var diff = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"), 'second')
document.writeln(hhmmss(diff))

PS。我从How to convert seconds to HH:mm:ss in moment.js

获取了摘录

答案 1 :(得分:0)

关于此,还有许多其他StackOverflow问题/答案。 为了帮助您入门,我放了一个片段。这将显示天数的差异。 查看the docs了解详情



<html>
    <body>
    <input type="date" id="dep" />
    <input type="date" id="arr" />
    <input type="button" onclick="test()" value="Test"/>
    <div id="test"></div>
   
     <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script>

     <script>
         function test()
         {
             var now  = document.getElementById('dep').value;
             var then = document.getElementById('arr').value;
             document.getElementById('test').innerHTML = moment(now,"YYYY/MM/DD HH:mm:ss").diff(moment(then,"YYYY/MM/DD HH:mm:ss"), "days");
         }
     </script>
    </body>
</html>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

使用document.getElementById("Div-Tag-ID").value = .... 代替document.writeln

您可以获得两个DateTime值之间的差异

   moment('2013-11-16') - moment('2013-11-15')

答案将在几毫秒内完成。据此,它的86400000是24小时。

答案 3 :(得分:0)

我假设您希望以秒为单位获得时间差异。

您可以尝试以下代码:

        var departure  = document.getElementById('dep').value;
        var arrival    = document.getElementById('arr').value;

        var startTime  = moment(departure, 'YYYY-MM-DD HH:mm:ss');
        var endTime    = moment(arrival, 'YYYY-MM-DD HH:mm:ss');

        var duration   = endTime.diff(startTime, 'seconds');

您可以更改时间格式,我使用&#39; YYYY-MM-DD HH:mm:ss&#39;