Solución:
Creo que estás buscando las funciones de consulta isBefore
, isSame
, y isAfter
.
Pero es un poco difícil saber exactamente lo que está intentando. ¿Quizás solo está buscando obtener la diferencia entre la hora de entrada y la hora actual? Si es así, considere la función de diferencia, diff
. Por ejemplo:
moment().diff(date_time, 'minutes')
Algunas otras cosas:
-
Hay un error en la primera línea:
var date_time = 2013-03-24 + 'T' + 10:15:20:12 + 'Z'
Eso no va a funcionar. Creo que quisiste decir:
var date_time="2013-03-24" + 'T' + '10:15:20:12' + 'Z';
Por supuesto, también podrías:
var date_time="2013-03-24T10:15:20:12Z";
-
Estás usando:
.tz('UTC')
incorrectamente..tz
pertenece a la zona horaria del momento. No necesita usar eso a menos que esté trabajando con otras zonas horarias, comoAmerica/Los_Angeles
.Si desea analizar un valor como UTC, utilice:
moment.utc(theStringToParse)
O, si desea analizar un valor local y convertir a UTC, luego use:
moment(theStringToParse).utc()
O quizás no lo necesite en absoluto. El hecho de que el valor de entrada esté en UTC no significa que tenga que trabajar en UTC durante toda su función.
-
Parece que obtiene la instancia “ahora” de
moment(new Date())
. En su lugar, puede usarmoment()
.
Actualizado
Según tu edición, creo que puedes hacer esto:
var date_time = req.body.date + 'T' + req.body.time + 'Z';
var isafter = moment(date_time).isAfter('2014-03-24T01:14:00Z');
O, si desea asegurarse de que sus campos estén validados para tener el formato correcto:
var m = moment.utc(req.body.date + ' ' + req.body.time, "YYYY-MM-DD HH:mm:ss");
var isvalid = m.isValid();
var isafter = m.isAfter('2014-03-24T01:14:00Z');
Debería poder compararlos directamente.
var date = moment("2013-03-24")
var now = moment();
if (now > date) {
// date is past
} else {
// date is future
}
$(document).ready(function() {
$('.compare').click(function(e) {
var date = $('#date').val();
var now = moment();
var then = moment(date);
if (now > then) {
$('.result').text('Date is past');
} else {
$('.result').text('Date is future');
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="text" name="date" id="date" value="2014-12-18" placeholder="yyyy-mm-dd">
<button class="compare">Compare date to current date</button>
<br>
<div class="result"></div>
Jsfiddle: http://jsfiddle.net/guhokemk/1/
function compare(dateTimeA, dateTimeB) {
var momentA = moment(dateTimeA,"DD/MM/YYYY");
var momentB = moment(dateTimeB,"DD/MM/YYYY");
if (momentA > momentB) return 1;
else if (momentA < momentB) return -1;
else return 0;
}
alert(compare("11/07/2015", "10/07/2015"));
El método devuelve 1 si dateTimeA es mayor que dateTimeB
El método devuelve 0 si dateTimeA es igual a dateTimeB
El método devuelve -1 si dateTimeA es menor que dateTimeB