javascript - spanish - Moment.js-dos fechas de diferencia en el número de días
moment locale spanish (2)
Desde el momento.js docs : format(''E'')
significa día de la semana. por lo tanto, su diferencia se calcula en qué día de la semana, que debe estar entre 1 y 7.
Desde el momento. Docs de nuevo, esto es lo que sugieren:
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, ''days'') // 1
Aquí hay un JSFiddle para su caso particular:
$(''#test'').click(function() {
var startDate = moment("13.04.2016", "DD.MM.YYYY");
var endDate = moment("28.04.2016", "DD.MM.YYYY");
var result = ''Diff: '' + endDate.diff(startDate, ''days'');
$(''#result'').html(result);
});
#test {
width: 100px;
height: 100px;
background: #ffb;
padding: 10px;
border: 2px solid #999;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.js"></script>
<div id=''test''>Click Me!!!</div>
<div id=''result''></div>
Obtengo resultados incorrectos al intentar encontrar una diferencia numérica entre dos fechas:
var startDate = moment( $(''[name="date-start"]'').val(), "DD.MM.YYYY"), // $(''[name="date-start"]'').val() === "13.04.2016"
endDate = moment( $(''[name="date-end"]'' ).val(), "DD.MM.YYYY"); // $(''[name="date-end"]'').val() === "28.04.2016"
var diff = startDate.diff(endDate);
console.log( moment(diff).format(''E'') );
Entre el 13.04.2016
y el 28.04.2016
no debería obtener esa diferencia es de 3 o 2 días ...
He intentado múltiples combinaciones:
- swap
startDate.diff(endDate)
conendDate.diff(startDate)
-
format(''E'')
con algo que he encontrado buscando el SO
Resultado: todo el tiempo que obtengo esa diferencia es de 3 o 2 días.
¿Qué estoy haciendo mal? Gracias por adelantado.
El método diff
devuelve la diferencia en milisegundos. moment(diff)
instanciación moment(diff)
no es significativo.
Puedes definir una variable:
var dayInMilliseconds = 1000 * 60 * 60 * 24;
y luego usarlo como tal:
diff / dayInMilliseconds // --> 15
Editar
en realidad, esto está integrado en el método diff
, la respuesta de los dobladores es mejor