瞬间Js日期不同的问题

时间:2018-12-07 19:18:07

标签: jquery momentjs

我有以下代码。我试图得到两个日期时间之间的差异。但是差异被错误地返还了。

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

请帮助。

1 个答案:

答案 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(不是数字)。

相关问题