#javascript #momentjs
#javascript #momentjs
Вопрос:
Вероятно, спрашивал раньше, но не могу найти ответ на это. Как мне проверять, превышает ли время 17:30 каждый день?
Мой случай заключается в том, что мне нужно будет проверить, превышает ли текущее время 17:30 с понедельника по пятницу, и если сегодня суббота, я должен проверить, превышает ли время 15:30.
Я предпочитаю использовать Moment.js .
Комментарии:
1. «Я предпочитаю использовать Moment.js .» ?
2. Почему вы изменили принятый ответ?
3. Я просмотрел эти ответы, и я действительно упоминаю Moment.js в качестве предпочтительного способа решения этой проблемы. Так что это более точный ответ на этот вопрос. В вашем ответе нет ничего плохого, но я думаю, что использование moment.js последняя функция — это более чистый способ решить эту проблему (по крайней мере, ее легче читать).
Ответ №1:
Вот пример с moment.js
function check() {
var now = moment();
var hourToCheck = (now.day() !== 0)?17:15;
var dateToCheck = now.hour(hourToCheck).minute(30);
return moment().isAfter(dateToCheck);
}
console.log(check())
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
Комментарии:
1. Я не голосовал против, и ваш подход разумный, но я думаю, что вы пропустили несколько вещей.
Ответ №2:
Вы можете просто проверить время, используя Date()
. Серьезно, вам не нужен большой плагин для этого:
var curTime = new Date();
var day = curTime.getDay();
curTime = parseInt(curTime.getHours() "" ("0" curTime.getMinutes()).substr(-2) "" ("0" curTime.getSeconds()).substr(-2));
if ((curTime > 173000 amp;amp; day > 0 amp;amp; day < 6) || (curTime > 153000 amp;amp; day <= 0 amp;amp; day >= 6))
console.log("It's a good time!");
else
console.log("It's not a good time!");
Дайте мне знать, если есть случай, это не удается!
Комментарии:
1. Вы забыли обнулить
2. @MattJohnson Ты меня понял!
:)
Обновлено.3. Лично я бы предпочел использовать множители единиц измерения и сохранить все числовые значения, но тогда, конечно, ваши значения сравнения будут выражены в общих секундах. Другим подходом было бы просто сравнивать элементы по отдельности, как вы делаете с day .
4. Вам никогда не нужен плагин, но, глядя на этот код, я предпочитаю использовать его.
Ответ №3:
Просто чтобы дать другой подход, используя moment.js:
var now = moment();
var day = now.day();
var today1730 = moment('17:30','HH:mm');
var today1530 = moment('15:30','HH:mm');
var ok = day > 0 amp;amp; day < 7 ? now.isSameOrAfter(today1730) : now.isSameOrAfter(today1530);
if (ok) { ... }
Комментарии:
1. я использовал это, и это помогло, но я сделал следующее: time1 = moment(outTime,’ЧЧ: мм’); const time2 = moment(inTime,’ЧЧ: мм’); возвращает time1.isSameOrAfter(time2);