¿Cómo comparar la parte de la fecha solo sin comparar el tiempo en JavaScript?

Para obtener fecha y hora en javascript, tenemos la clase Date() . Accedemos a la clase Date() creando sus objetos. La clase Date() devuelve la fecha y la hora combinadas.

Hay cuatro formas de instanciar una fecha:
Sintaxis:

var d = new Date();
//returns the present date and time

o

var d = new Date(milliseconds);
//to set a specific date

o

var d = new Date(dateString);
//to set a specific date

o

var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
//to set a specific date:

Entonces Date() devuelve la función Date() { [código nativo] } y podemos convertir eso en una string usando object.toString()

Enfoque 1:
cuando los objetos se comparan, se comparan tanto con la hora como con la fecha.
Así que ahora vamos a hacer que la hora sea 00:00:00 (parar) de esa manera cuando los objetos se comparen, solo se comparará la fecha, ya que la hora para ambos objetos de fecha será 00:00:00 (parar).

Para configurar la hora como 00:00:00 (detener), setHours() resulta útil.

Sintaxis;

//the hour(0-23) is mandatory.
dateobject.setHours(hour, min, sec, millisec)

Y para hacer que el tiempo sea 0 o completamente detenido, debemos asegurarnos de que todos los parámetros sean 0, incluidos los milisegundos.

Ejemplo:

<!DOCTYPE html>
<html>
  
<body>
  
    <p>Below date1 and data2 are compared for older, further, and same dates.</p>
  
    <script>
        //Example-1
        var date1 = new Date();
        date1.setHours(0, 0, 0, 0)
        var date2 = new Date(2020, 8, 20);
        //stops the clock
        date2.setHours(0, 0, 0, 0)
        document.write("date1=>", date1);
        document.write("<br \>date2=>", date2);
        if (date1 > date2) {
            document.write("<br \>date1 is further than date2");
        } else if (date1 < date2) {
            document.write("<br \>date1 is older than date2")
        } else {
            document.write("<br \>date1 and date2 same")
        }
        //Example-2
        date2 = new Date(2019, 11, 3);
        document.write("<br \><br \>date1=>", date1);
        document.write("<br \>date2=>", date2);
        if (date1 > date2) {
            document.write("<br \>date1 is further than date2");
        } else if (date1 < date2) {
            document.write("<br \>date1 is older than date2")
        } else {
            document.write("<br \>date1 and date2 same")
        }
        //Example-3
        date1 = new Date();
        date2 = new Date();
        date1.setHours(0, 0, 0, 0)
        date2.setHours(0, 0, 0, 0)
        document.write("<br \><br \>date1=>", date1);
        document.write("<br \>date2=>", date2);
        if (date1 > date2) {
            document.write("<br \>date1 is further than date2");
        } else if (date1 < date2) {
            document.write("<br \>date1 is older than date2")
        } else {
            document.write("<br \>date1 and date2 same.")
        }
        //Example-4
        date1 = new Date();
        date2 = new Date();
        date1.setHours(0, 0, 0, 0)
            /*Due to, time didn't get stop in data2,
            it’s time also gets compared to data1.*/
            //date2.setHours(0,0,0,0)
        document.write("<br \><br \>date1=>", date1);
        document.write("<br \>date2=>", date2);
        if (date1 > date2) {
            document.write("<br \>date1 is further than date2");
        } else if (date1 < date2) {
            document.write("<br \>date1 is older than date2")
        } else {
            document.write("<br \>date1 and date2 same.")
        }
    </script>
  
</body>
  
</html>

Producción

Below date1 and data2 are compared for older, further, and same dates.

date1=>Wed Dec 04 2019 00:00:00 GMT+0530 (India Standard Time)
date2=>Sun Sep 20 2020 00:00:00 GMT+0530 (India Standard Time)
date1 is older than date2

date1=>Wed Dec 04 2019 00:00:00 GMT+0530 (India Standard Time)
date2=>Tue Dec 03 2019 00:00:00 GMT+0530 (India Standard Time)
date1 is further than date2

date1=>Wed Dec 04 2019 00:00:00 GMT+0530 (India Standard Time)
date2=>Wed Dec 04 2019 00:00:00 GMT+0530 (India Standard Time)
date1 and date2 same.

date1=>Wed Dec 04 2019 00:00:00 GMT+0530 (India Standard Time)
date2=>Wed Dec 04 2019 05:37:26 GMT+0530 (India Standard Time)
date1 is older than date2

Enfoque 2:
Aquí vamos a usar toDateString() para obtener la única fecha, pero cuando la obtenemos se convierte en una string, ya que la comparación no es posible para las strings, necesitamos volver a convertirla en un objeto de fecha, ahora al convertir los devuelve al tiempo del objeto establecido en 00:00:00 (se detiene) .

Sintaxis:

var date1 = new Date(new Date().toDateString());

Desglose de la sintaxis anterior

new Date().toDateString()
converts the Date object to a string containing only the date part.
new Date(new Date().toDateString()); 
converts it back to Date object setting time to 00:00:00

Ejemplo

<!DOCTYPE html>
<html>
  
<body>
  
    <p>Below date1 and data2 are compared for older,
      further, and same dates.</p>
  
    <script>
        //Example-1
        var date1 = new Date(new Date().toDateString());
        var date2 = new Date(new Date(2018, 8, 20).toDateString());
        //var date2 = new Date(2018,8,20).toDateString();
        document.write("date1=>", date1); //returns only the date.
        document.write("<br \>date2=>", date2);
        if (date1 > date2) {
            document.write("<br \>date1 is further than date2");
        } else if (date1 < date2) {
            document.write("<br \>date1 is older than date2")
        } else {
            document.write("<br \>date1 and date2 same")
        }
    </script>
</body>
  
</html>

Producción

Below date1 and data2 are compared for older, further, and same dates.

date1=>Fri Dec 20 2019 00:00:00 GMT+0530 (India Standard Time)
date2=>Thu Sep 20 2018 00:00:00 GMT+0530 (India Standard Time)
date1 is further than date2

Publicación traducida automáticamente

Artículo escrito por Tejashwi5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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