我有以下代码。我试图得到两个日期时间之间的差异。但是差异被错误地返还了。
var startDate = moment("14-Dec-2018 23:35:00", "dd-MMM-yyyy HH:mm:ss");
var endDate = moment("15-Dec-2018 02:00:00", "dd-MMM-yyyy HH:mm:ss");
var result = 'Diff: ' + endDate.diff(startDate, 'minutes');
获取结果= -1295
预期结果= 145
请帮助。
答案 0 :(得分:0)
日期和时间的格式设置会给您带来更高版本的MomentJS问题。一种可能的解决方案是更改包含其他格式的日期和时间的字符串。我测试了MomentJs的几个版本,看来您需要不同的日期模式:
var startDate1 = moment("2018-12-14T23:35:00");
var endDate1 = moment("2018-12-15T02:00:00");
比较MomentJS 2.10.0版:
var startDate1 = moment("2018-12-14T23:35:00");
var endDate1 = moment("2018-12-15T02:00:00");
var result1 = endDate1.diff(startDate1, 'minutes');
console.log(result1);
var startDate2 = moment("14-Dec-2018 23:35:00", "dd-MMM-yyyy HH:mm:ss");
var endDate2 = moment("15-Dec-2018 02:00:00", "dd-MMM-yyyy HH:mm:ss");
var result2 = 'Diff: ' + endDate2.diff(startDate2, 'minutes');
console.log(result2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.0/moment.min.js"></script>
具有2.22.2版本的输出:
var startDate1 = moment("2018-12-14T23:35:00");
var endDate1 = moment("2018-12-15T02:00:00");
var result1 = endDate1.diff(startDate1, 'minutes');
console.log(result1);
var startDate2 = moment("14-Dec-2018 23:35:00", "dd-MMM-yyyy HH:mm:ss");
var endDate2 = moment("15-Dec-2018 02:00:00", "dd-MMM-yyyy HH:mm:ss");
var result2 = 'Diff: ' + endDate2.diff(startDate2, 'minutes');
console.log(result2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
我上面提到的模式仍然是正确的,但是您当前使用的模式将被弃用,因为它会导致NaN(不是数字)。