Вывод ожидаемой доставки на сайте
Всем привет!
Нужна помощь в реализации скрипта начинающему. Суть следующая: Если пользователь заходит в карточку товара на текущий день до 15.00 , то доставка завтра. Если пользователь заходит в карточку товара на текущий день после 15.00, то доставка после завтра. Вроде бы написал, но столкнулся с проблемой последнего дня в месяце, скрипт начал выводить неправильную дату , то есть, завтра допустим 1 мая, а выводит 32 апреля.... скрипт прилагается <script type="text/javascript"> // выводим дату доставки var d = new Date(); var theDay = d.getDay(); var time = d.getHours(); var dTommorow = new Date(); var dTommorow.setDate(D.getDate() + 1)); var dAfterTommorow = new Date(); var dAfterTommorow.setDate(D.getDate() + 2)); var month=new Array(); // выводим массив месяцев month[0] = "Января"; month[1] = "Февраля"; month[2] = "Марта"; month[3] = "Апреля"; month[4] = "Мая"; month[5] = "Июня"; month[6] = "Июля"; month[7] = "Августа"; month[8] = "Сентября"; month[9] = "Октября"; month[10] = "Ноября"; month[11] = "Декабря"; if(time < 15) // Проверка: если до 15.00, то доставка завтра { /*document.write("<span>Доставим по Москве:</span>"+" " +[d.getDate()+1] + " " + month[d.getMonth()]);*/ document.write("<span>Доставим по Москве:</span>"+" " +[dTommorow.getDate()] + " " + month[dTommorow.getMonth()]); } else { document.write("<span>Доставим по Москве:</span>"+" " +[d.AfterTommorow.getDate()] + " " + month[d.getMonth()]); } switch (theDay) { case 6: document.write(" - Внимание! Доставка в выходные дни по договоренности"); // выводим сообщение на доставку в выходные дни break; case 7: document.write(" - Внимание! Доставка в выходные дни по договоренности"); } </script> |
Цитата:
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
<script type="text/javascript"> // выводим дату доставки
var d = new Date(); var theDay = d.getDay(); var time = d.getHours(); var dTommorow = new Date(); var dTommorow.setDate(d.getDate() + 1)); var dAfterTommorow = new Date(); var dAfterTommorow.setDate(d.getDate() + 2)); var month=new Array(); // выводим массив месяцев month[0] = "Января"; month[1] = "Февраля"; month[2] = "Марта"; month[3] = "Апреля"; month[4] = "Мая"; month[5] = "Июня"; month[6] = "Июля"; month[7] = "Августа"; month[8] = "Сентября"; month[9] = "Октября"; month[10] = "Ноября"; month[11] = "Декабря"; if(time < 15) // Проверка: если до 15.00, то доставка завтра {document.write("<span>Доставим по Москве:</span>"+" " +[dTommorow.getDate()] + " " + month[dTommorow.getMonth()]); } else {document.write("<span>Доставим по Москве:</span>"+" " +[dAfterTommorow.getDate()] + " " + month[dAfetrTommorow.getMonth()]); } switch (theDay) { case 6: document.write(" - Внимание! Доставка в выходные дни по договоренности"); // выводим сообщение на доставку в выходные дни break; case 7: document.write(" - Внимание! Доставка в выходные дни по договоренности"); } </script> |
Обалдеть. А если он напишет - привезите мне послезавтра в 11-00, вы что ему скажете "в очередь сукины дети"?
|
используйте BB-коды для форматирование .....
|
Ничего не напишет, читай задание внимательно. Это информационное сообщение.
|
Цитата:
|
По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, в кокам пряокде рсапожолены бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы чиатем не кдаужю бкуву по отдльенотси, а все солво цликеом.
Но это текст, а вот код, это иное. Выставляя код, потрудитесь его обрамить ВВ-тегами соответствующими, чтобы он воспринимался как код, а не Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете Вы же просите помощи, значит уважайте тех, кто должен вникать в код ваш. Что касается непосредственно кода - а каким образом сервер будет знать, что кто-то выбрал товар до или после 15:00? Товаром ведь ведает не клиент, а сервер. К тому же, чтобы так однозначно трактовать доставку, магазин должен обслуживать клиентов только своего часового пояса, все запросы на доставку (выбор товара) должны в пределах часового пояса сервера. Это так? |
Цитата:
А вот по по поводу часовых поясов пока не задумывался, так как хост питерский, то соответственно берется московское время. Но дело не в этом, ошибка проявилась на конец месяца - к последнему дню месяца прибавляется еще 1 день, и вместо 1 апреля отображается 32 марта... как это поправить , вот в чем суть всего вопроса.. А тут развели демагогию по поводу, как должно выглядеть сообщение и все такое... |
вот пример, чтоб было понятней: http://www.galantes.ru/index.php?productID=10551
|
Часовой пояс GMT +3, время: 11:15. |