Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Moment.js是否在dd:hh:mm:ss格式中获取两个日期之间的差异?_Javascript_Date_Momentjs - Fatal编程技术网

Javascript Moment.js是否在dd:hh:mm:ss格式中获取两个日期之间的差异?

Javascript Moment.js是否在dd:hh:mm:ss格式中获取两个日期之间的差异?,javascript,date,momentjs,Javascript,Date,Momentjs,我正在计算时间,直到当天晚上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.e

我正在计算时间,直到当天晚上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>

setInterval(函数(){
var now=力矩();
var mid=力矩();
mid=mid.endOf(“日”);
var diffHours=mid.diff(现在是“小时”);
var diffMinutes=mid.diff(现在是“分钟”);
var diffSeconds=mid.diff(现在是“秒”);
控制台日志(diffHours+h+diffMinutes+m+diffSeconds+s);
}, 1000)
然而,我希望它能告诉我一个时间,比如20小时13米49秒,而我得到的是20小时1255米73500秒


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

您现在需要在每个
diff
之后修改
变量

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

为了便于比较,这里是David Stampher的moment.js示例,来自另一个答案的评论,给出了截止到23:59:59.999“today”的时间以及在普通js中的相同功能:

//Moment.js版本
var now=力矩();
var mid=力矩();
mid=mid.endOf(“日”);
var diff1=时刻utc(时刻(中,“日/月/年”HH:MM:ss)
.diff(瞬间(现在是“DD/MM/YYYY HH:MM:ss”))
.格式(“HH:mm:ss”);
log('moment.js:'+diff1);
//POJS版本

var z=(n)=>(n感谢您的快速响应。我找到了另一种方法,它使用更少的代码行。
code
var now=moment();var mid=moment();mid=mid.endOf('day');var diff=moment.utc(moment(mid,“DD/MM/YYYY HH:MM:ss”)。diff(moment(现在,“DD/MM/yyyyyyy HH:MM:ss”))。格式(“HH:MM:ss”);很明显,这是一个你想要如何输出的问题。对于这个示例,如果您想使用它,您仍然需要将它解析为单独的变量。非常正确。再次感谢!你可以看看哪一个应该注意,你不需要在时区上乱搞。谢谢t.niese,我在另一个SO上听到了这个建议,其他人也有过类似的问题。所以我会调查一下,但现在我想我也找到了一种方法,可以很容易地做我想做的事情。在将近两年后,这对我来说非常有效:)谢谢你,罗布