Момент Js дата другой вопрос - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть код ниже.Я пытаюсь получить разницу между двумя датами.Но разница возвращается неверно.

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 голосов
/ 07 декабря 2018

Ваше форматирование даты и времени вызовет проблемы в более поздней версии MomentJS.Возможное решение - изменить строку, содержащую дату и время, в другом формате.Я протестировал несколько версий MomentJ и, похоже, вам нужен другой шаблон для ваших дат:

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 (не число).

...