Javascript Moment.js是否在dd:hh:mm:ss格式中获取两个日期之间的差异?
我正在计算时间,直到当天晚上11:59。这里有一个例子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
<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上听到了这个建议,其他人也有过类似的问题。所以我会调查一下,但现在我想我也找到了一种方法,可以很容易地做我想做的事情。在将近两年后,这对我来说非常有效:)谢谢你,罗布