Как получать различие дней между двумя датами в языке сценариев JavaScript?

Я нуждаюсь в том, чтобы найти различие дней, которое есть, между двумя датами, которые у меня есть следующего способа:

// el formato de estas es (yyyy-mm-dd)
// Corresponden al 12 de julio del 2016 hasta el 1 de agosto del 2016
var fechaInicio = '2016-07-12';
var fechaFin    = '2016-08-1';

Если я пробую уменьшать их, такой который у меня они есть там, результат NaN. Как он мог бы решать это?

22
задан 09.10.2018, 05:01
2 ответа

Простое решение, для манипуляции дат в языке сценариев JavaScript используй moment.js

var fecha1 = moment('2016-07-12');
var fecha2 = moment('2016-08-01');

console.log(fecha2.diff(fecha1, 'days'), ' dias de diferencia');
<script src="http://momentjs.com/downloads/moment.min.js"></script>

Метод diff он позволяет тебе находить различие в любой единице и sintáxis

moment.diff(moment, 'intervalo')

Чтобы вычислять то же самое, но в часы

var fecha1 = moment('2016-07-12');
var fecha2 = moment('2016-08-01');

console.log(fecha2.diff(fecha1, 'hours'), ' horas de diferencia');
<script src="http://momentjs.com/downloads/moment.min.js"></script>
20
ответ дан 03.12.2019, 20:38
  • 1
    я получаю один Uncaught ReferenceError: moment is not defined. –  rnrneverdies 30.08.2016, 18:16
  • 2
    @rnd Est и # 225; s импортируя librer и # 237; в moment.js? –  Jose Hermosilla Rodrigo 30.08.2016, 18:18
  • 3
    @JoseHermosillaRodrigo я имею в виду stacksnippet. –  rnrneverdies 30.08.2016, 18:18
  • 4
    Супер @devconcept я я функционирую, Большое спасибо! –  Alan 30.08.2016, 18:20
  • 5
    видимо это была локальная проблема, извинил вторжение господин. –  rnrneverdies 30.08.2016, 18:27

Ты можешь получать миллисекунды между двумя датами и перемещать это dГ-эксперт:

var fechaInicio = new Date('2016-07-12').getTime();
var fechaFin    = new Date('2016-08-01').getTime();

var diff = fechaFin - fechaInicio;

console.log(diff/(1000*60*60*24) );
                 // (1000*60*60*24) --> milisegundos -> segundos -> minutos -> horas -> días
18
ответ дан 03.12.2019, 20:38
  • 1
    превосходный я я функционирую, он нуждался в этом в añ вы así что я сделал divisió n из-за 31536000000, который является эквивалентом в añ вы в военной службе секунды. –  Luis Toscano Castilla 19.08.2019, 07:53

Теги

Похожие вопросы