Saltar al contenido

Comparación de fecha y hora de momento js

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, como America/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 usar moment().

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

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *