Есть ли способ проверить, была ли дата меньше часа назад?
Что-то вроде этого:
<script>
// old date
var olddate = new Date("February 9, 2012, 12:15");
// current date
var currentdate = new Date();
if (olddate >= currentdate - 1 hour) {
alert("newer than 1 hour");
else {
alert("older than 1 hour");
}
</script>
Также другой вопрос - есть ли способ добавить часы к дате?
Как это:
<script>
var olddate = new Date("February 9, 2012, 12:15") + 15 HOURS; // output: February 10, 2012, 3:15
</script>
javascript
Supercoolville
источник
источник
Ответы:
Определить
var ONE_HOUR = 60 * 60 * 1000; /* ms */
тогда ты можешь сделать
((new Date) - myDate) < ONE_HOUR
Чтобы получить один час до свидания, попробуйте
new Date(myDate.getTime() + ONE_HOUR)
источник
Используя некоторый синтаксис ES6:
const lessThanOneHourAgo = (date) => { const HOUR = 1000 * 60 * 60; const anHourAgo = Date.now() - HOUR; return date > anHourAgo; }
Использование библиотеки Moment :
const lessThanOneHourAgo = (date) => { return moment(date).isAfter(moment().subtract(1, 'hours')); }
Сокращенный синтаксис с Moment :
const lessThanOneHourAgo = (date) => moment(date).isAfter(moment().subtract(1, 'hours'));
источник
const lessThanOneHourAgo = (date) => { return dayjs(date).isAfter(dayjs().subtract(1, 'hours')); };
в настоящий момент библиотека действительно может помочь выразить это. Хитрость заключается в том, чтобы взять дату, добавить время и посмотреть, до или после этого:
lastSeenAgoLabel: function() { var d = this.lastLogin(); if (! moment(d).isValid()) return 'danger'; // danger if not a date. if (moment(d).add(10, 'minutes').isBefore(/*now*/)) return 'danger'; // danger if older than 10 mins if (moment(d).add(5, 'minutes').isBefore(/*now*/)) return 'warning'; // warning if older than 5mins return 'success'; // Looks good! },
источник
//for adding hours to a date Date.prototype.addHours= function(hrs){ this.setHours(this.getHours()+hrs); return this; }
Вызовите такую функцию:
//test alert(new Date().addHours(4));
источник
В этом случае использовать момент будет намного проще. Вы можете попробовать следующее:
let hours = moment().diff(moment(yourDateString), 'hours');
Он даст вам целочисленное значение, например 1,2,5,0 и т.д., поэтому вы можете легко использовать проверку условий, например:
if(hours < 1) {
Кроме того, еще одна вещь: вы можете получить более точный результат разницы во времени (в десятичных дробях, например, 1.2,1.5,0.7 и т. Д.), Чтобы получить такой результат, используя следующий синтаксис:
let hours = moment().diff(moment(yourDateString), 'hours', true);
Дайте мне знать, если у вас возникнут дополнительные вопросы
источник
Сделать это можно следующим образом:
var date = new Date("2020-07-12 11:30:10"); var now = new Date(); var diffInMS = now - date; var msInHour = Math.floor(diffInMS/1000/60); if (msInHour < 60) { console.log('Within hour'); } else { console.log('Not within the hour'); }
источник
// попробуйте это: // сравнить две даты:
<Script Language=Javascript> function CompareDates() { var str1 = document.getElementById("Fromdate").value; var str2 = document.getElementById("Todate").value; var dt1 = parseInt(str1.substring(0,2),10); var mon1 = parseInt(str1.substring(3,5),10); var yr1 = parseInt(str1.substring(6,10),10); var dt2 = parseInt(str2.substring(0,2),10); var mon2 = parseInt(str2.substring(3,5),10); var yr2 = parseInt(str2.substring(6,10),10); var date1 = new Date(yr1, mon1, dt1); var date2 = new Date(yr2, mon2, dt2); if(date2 < date1) { alert("To date cannot be greater than from date"); return false; } else { alert("Submitting ..."); } } </Script>
Надеюсь, это сработает ...
источник