.isAfter вернуть даже ложь - PullRequest
       11

.isAfter вернуть даже ложь

0 голосов
/ 22 января 2019

Я использую momentjs с Eonasdan плагином и пытаюсь проверить, меньше ли дата end, чем дата start, для этого я использую метод isAfter

var start = moment($('#start-datetime').val());
var end = moment($('#end-datetime').val());
console.log((start).isAfter(end));   

это вернет даже false, значения определены так:

  • начало: 07.02.2009 19: 58
  • конец: 31.01.2009 19: 58

1 Ответ

0 голосов
/ 22 января 2019

Попробуйте передать определенную строку формата и локаль в moment, чтобы убедиться, что строка проанализирована правильно:

moment(..., "DD/MM/YYYY HH:mm", "en");

или

moment.locale("en");
...
moment(..., "DD/MM/YYYY HH:mm");

Демонстрация:

moment.locale("en");
$("#test-button").click(function() {
  var start = moment($('#start-datetime').val(), "DD/MM/YYYY HH:mm");
  var end = moment($('#end-datetime').val(), "DD/MM/YYYY HH:mm");
  console.log((start).isAfter(end));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
<input id="start-datetime" type="text" value="07/02/2019 19:58">
<input id="end-datetime" type="text" value="31/01/2019 19:58">
<button id="test-button">Test</button>
...