You are currently viewing Как сравнить только часть даты без сравнения времени в JavaScript?

Как сравнить только часть даты без сравнения времени в JavaScript?

Чтобы получить дату и время в javascript, у нас есть класс Date (). Мы получаем доступ к классу Date (), создавая его объекты. Класс Date() возвращает дату и время в сочетании.

Существует четыре способа создания экземпляра даты:
Синтаксис:

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

или

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

или

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

или

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

Таким образом, функция Date() возвращает функцию Date() { [собственный код]}, и мы можем превратить ее в строку с помощью object.toString()

Подход 1:

Когда объекты сравниваются, они сравниваются как со временем, так и с датой.
Итак, теперь мы установим время до 00:00:00(остановка) таким образом, когда сравниваются объекты, сравнивается только дата, так как время для обоих объектов даты будет 00:00:00(остановка).

Чтобы установить время как 00:00:00(остановка), пригодится функция setHours ().

Синтаксис:

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

И для того, чтобы время было равно 0 или полностью остановлено, мы должны убедиться, что все параметры равны 0, включая миллисекунды.

Пример:

<!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>

Выход

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

Подход 2:

Здесь мы будем использовать toDateString() для получения единственной даты, но при ее получении она преобразуется в строку, поскольку сравнение строк невозможно, нам нужно снова преобразовать ее в объект даты, теперь при преобразовании их обратно в объект время устанавливается в 00:00:00(останавливается).

Синтаксис:

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

Разбивка приведенного выше синтаксиса

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 

Пример

<!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>

Выход

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