возврат количества дней между двумя датами не работает - PullRequest
1 голос
/ 13 марта 2019

У меня есть небольшой код, который выбирает даты из файла json. и возвращает количество дней, оставшихся до его истечения.

Как бы то ни было, его возвращение NaN в журнале консоли.

var start = "2019/03/12";
var end = "2020/03/12";
days = (end- start) / (1000 * 60 * 60 * 24);
console.log(Math.round(days));

это должно быть правильно. но это не работает.

Ответы [ 4 ]

1 голос
/ 13 марта 2019

Вам нужно изменить end и start на Дата

var start = "2019/03/12";
var end = "2020/03/12";
days = ( new Date(end)- new Date(start) ) / (1000 * 60 * 60 * 24);
console.log(Math.round(days));
0 голосов
/ 13 марта 2019

Используйте diff функцию moment.js.Но вы должны отформатировать его перед использованием.

const format = date => date.replace(/\//g, '-') 

var start = moment(format("2019/03/12"));
var end = moment(format("2020/03/12"));

console.log(end.diff(start, 'days'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
0 голосов
/ 13 марта 2019

вам нужно конвертировать вашу строковую дату в дату javascript, но в целом я бы рекомендовал использовать момент, так как даты javascript могут быть трудными

для преобразования вашей строки в тип даты javascript вы можете сделать это следующим образом

var mydate = new Date('2011-04-11T10:20:30Z'); // <--- you have to format it

подход 2)

new Date('2011', '04' - 1, '11', '11', '51', '00')

если вы хотите использовать момент, вы можете сделать это следующим образом:

var mydate = moment("2014-02-27T10:00:00").format('DD-MM-YYYY'); // <-- here inside the format function you can define how your string get's parsed

, если это поможет, пожалуйста, отметьте какправильный ответ, спасибо!

0 голосов
/ 13 марта 2019

Попробуйте это ... используя Дата объекты

var start = new Date("2019/03/12");
var end = new Date("2020/03/12");
days = (end - start) / (1000 * 60 * 60 * 24);
console.log(Math.round(days));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...