Я работаю над созданием формы, которая должна быть представлена только в рабочее время. Используя предупреждения, чтобы показать мне время каждой из переменных даты, я могу видеть, что время все так, как ожидалось, но каким-то образом форма отправляется независимо от времени. Я хотел бы попросить помощи, чтобы это работало, как я хочу. Я экспериментировал с изменением выражений внутри оператора if-else уже без успеха.Сравнение дат JavaScript не работает должным образом
Чтобы уточнить даты; часы работы во время обеда - с 12 до 14 часов, а часы работы - с 17:00 до 23:00.
Это Java-функция для проверки или не подавать форму:
function startOrder()
{
var now = new Date();
//var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
var lunchOpen = new Date(2015, 11, 5, 12, 00, 00, 00);
var lunchClose = new Date(2015, 11, 5, 14, 00, 00, 00);
var eveningOpen = new Date(2015, 11, 5, 17, 00, 00, 00);
var eveningClose = new Date(2015, 11, 5, 23, 00, 00, 00);
alert("NOW: " + now);
alert("LUNCH OPEN: " + lunchOpen);
alert("LUNCH CLOSE: " + lunchClose);
alert("EVENING OPEN: " + eveningOpen);
alert("EVENING CLOSE: " + eveningClose);
if ((now > lunchOpen) && (now < lunchClose) == false)
{
document.getElementById('error_Message').innerHTML = "Sorry, we're not open at the moment. You can check our opening times <a href=\"information.html\" class=\"content_Links\">here</a>.";
}
else if ((now > eveningOpen) && (now < eveningClose) == false)
{
document.getElementById('error_Message').innerHTML = "Sorry, we're not open at the moment. You can check our opening times <a href=\"information.html\" class=\"content_Links\">here</a>.";
}
else
{
document.forms["startOrderForm"].submit();
}
}
В какой-то момент мне нужно будет изменить все переменные даты, которые держат часы работы на текущую дату, так что они содержат текущая дата в год, месяц и день, как это ...
var lunchOpen = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 12, 00, 00, 00);
замечу, что я знаю, что эта система не будет полностью надежным, поскольку устройство клиента не может быть правильно установленное время. У меня есть решение для этого, которое я буду применять позже.
Большое спасибо за помощь. Если вам нужна дополнительная информация, просто оставьте комментарий. Надеюсь, я не ошибаюсь.
Просто избавьтесь от '== false'. – RobG
@RobG удаление '== false' вообще не поможет – Oli
@firstTimer Спасибо за ваш ответ, отлично работает сейчас! – Oli