Дата Доставки
#1
Отправлено 31 Август 2012 - 11:22
#2
Отправлено 31 Август 2012 - 23:45
Получиться примерно следующий код.
В шаблон HTML вставляем
<span class="current-time" id="{CURRENT_TIME}" style="display:none;"></span>
Далее в main.js
$(document).redy(function(){ var mtime = $('.current-time').attr('id'); var date = new Date(mtime); if(date.getDay() == 5) { date.setDate(3); } else if(date.getDay() == 6) { date.setDate(2); } else { date.setDate(1); } date.toLocaleFormat('%d:%m:%Y'); $('.insert-date').text(date.toLocaleString()); });
Далее в шаблон "Товар" в необходимое место для вывода даты вставляем
<span class="insert-date"></span>
Документацию по Date можете почитать тут http://javascript.ru/Date
#3
Отправлено 01 Сентябрь 2012 - 00:36
#4
Отправлено 04 Сентябрь 2012 - 05:46
$(document).ready(function(){ var mtime = parseInt($('.current-time').attr('id')) * 1000; var date = new Date(parseInt(mtime)); if(date.getDay() == 5) { date.setDate(date.getDate() + 3); } else if(date.getDay() == 6) { date.setDate(date.getDate() + 2); } else { date.setDate(date.getDate() + 1); } $('.insert-date').text(date.toLocaleFormat('%d:%m:%Y')); });
#5
Отправлено 04 Сентябрь 2012 - 11:14
#6
Отправлено 05 Сентябрь 2012 - 07:07
$('.insert-date').text(date.toLocaleFormat('%d:%m:%Y'));
на
$('.insert-date').text((date.getDay() < 10 ? '0' + date.getDay() : date.getDay()) + ':' + (date.getMonth() < 10 ? '0' + date.getMonth() : date.getMonth()) + ':' + date.getFullYear());
#7
Отправлено 05 Сентябрь 2012 - 11:50
$(document).ready(function(){ var mtime = parseInt($('.current-time').attr('id')) * 1000; var date = new Date(parseInt(mtime)); if(date.getDay() == 5) { date.setDate(date.getDate() + 5); } else if(date.getDay() == 6) { date.setDate(date.getDate() + 4); } else { date.setDate(date.getDate() + 3); } $('.insert-date').text((date.getDay() < 10 ? '0' + date.getDay() : date.getDay()) + '.' + ((date.getMonth() + 1) < 10 ? '0' + (date.getMonth() +1) : date.getMonth()) + '.' + date.getFullYear()); });
Вроде правильно стал выводить.
#8
Отправлено 06 Сентябрь 2012 - 09:41
Подскажите, а если я хочу чтобы ближайшая дата доставки выводилась уже после того как клиент выбрал товар и оформляет доставку, чуть выше поля "удобное время доставки", вот примерно так чтоб распологалось:
Я так понимаю все нужно делать как описано выше, но подскажите
куда вставить этот код: <span class="insert-date"></span>
Я подозреваю что его нужно вставлять в шаблон "Оформление заказа", гдето в коде:
<!-- Если запрашивается поле удобного времени доставки -->
{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME<3 %}
<tr>
<td width="10%">
<label for="deliveryConvenientDate">Удобное время доставки:{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<span class="red">*</span>{% ENDIF %}</label>
</td>
<td width="90%">
<input id="deliveryConvenientDate" name="form[delivery][convenient_date]" value="{ORDER_FORM_DELIVERY_CONVENIENT_DATE}" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %} />
c <select name="form[delivery][convenient_time_from]">
<option></option>
{% FOR convenient_time_from_list %}
<option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option>
{% ENDFOR %}
</select>
до
<select name="form[delivery][convenient_time_to]">
<option></option>
{% FOR convenient_time_to_list %}
<option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option>
{% ENDFOR %}
</select>
</td>
</tr>
{% ENDIF %}
#9
Отправлено 06 Сентябрь 2012 - 10:27
<!-- Если запрашивается поле удобного времени доставки --> {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME<3 %} <tr> <td><span class="insert-date"></span></td></tr> <tr> <td width="10%"> <label for="deliveryConvenientDate">Удобное время доставки:{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<span class="red">*</span>{% ENDIF %}</label> </td> <td width="90%"> <input id="deliveryConvenientDate" name="form[delivery][convenient_date]" value="{ORDER_FORM_DELIVERY_CONVENIENT_DATE}" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %} /> c <select name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {% ENDFOR %} </select> до <select name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {% ENDFOR %} </select> </td> </tr> {% ENDIF %}
#10
Отправлено 06 Сентябрь 2012 - 15:32
#11
Отправлено 06 Сентябрь 2012 - 16:01
Flagman86@mail.ru (06 Сентябрь 2012 - 15:32) писал:
Тот код, что выше оказался нерабочим, когда наступило 0 часов, стал показывать дату 00.09.2012. Я так и не понял почему. Я переделал так:
$(document).ready(function(){ var mtime = parseInt($('.current-time').attr('id')) * 1000; var date = new Date(parseInt(mtime)); if(date.getDay() == 5) { date.setDate(date.getDate() + 3); } else if(date.getDay() == 6) { date.setDate(date.getDate() + 2); } else { date.setDate(date.getDate() + 1); } $('.insert-date').text((date.getDay() < 10 ? '0' + (date.getDay() +2) : date.getDay()) + '.' + ((date.getMonth() + 1) < 10 ? '0' + (date.getMonth() +1) : date.getMonth()) + '.' + date.getFullYear()); });
Вроде нормально стало, показывает дату сегодня+1 день. Жду ночи, чтобы проверить работает/не работает.
#12
Отправлено 07 Сентябрь 2012 - 09:37
Vaccina (05 Сентябрь 2012 - 07:07) писал:
$('.insert-date').text(date.toLocaleFormat('%d:%m:%Y'));
на
$('.insert-date').text((date.getDay() < 10 ? '0' + date.getDay() : date.getDay()) + ':' + (date.getMonth() < 10 ? '0' + date.getMonth() : date.getMonth()) + ':' + date.getFullYear());
Добрый день. Дата все-равно не работает. Сегодня выводит 3 сентября. Код сейчас такой:
$(document).ready(function(){ var mtime = parseInt($('.current-time').attr('id')) * 1000; var date = new Date(parseInt(mtime)); if(date.getDay() == 5) { date.setDate(date.getDate() + 3); } else if(date.getDay() == 6) { date.setDate(date.getDate() + 2); } else { date.setDate(date.getDate() + 1); } $('.insert-date').text((date.getDay() < 10 ? '0' + (date.getDay() +2) : date.getDay()) + '.' + ((date.getMonth() + 1) < 10 ? '0' + (date.getMonth() +1) : date.getMonth()) + '.' + date.getFullYear()); });
#13
Отправлено 10 Сентябрь 2012 - 07:41
$(document).ready(function(){ var mtime = parseInt($('.current-time').attr('id')) * 1000; var date = new Date(parseInt(mtime)); if(date.getDay() == 5) { date.setDate(date.getDate() + 3); } else if(date.getDay() == 6) { date.setDate(date.getDate() + 2); } else { date.setDate(date.getDate() + 1); } $('.insert-date').text((date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ':' + (date.getMonth() < 10 ? '0' + date.getMonth() : date.getMonth()) + ':' + date.getFullYear()); });
Нужно изменить date.getDaу на date.getDate в выводе
#14
Отправлено 10 Сентябрь 2012 - 12:25
Vaccina (10 Сентябрь 2012 - 07:41) писал:
$(document).ready(function(){ var mtime = parseInt($('.current-time').attr('id')) * 1000; var date = new Date(parseInt(mtime)); if(date.getDay() == 5) { date.setDate(date.getDate() + 3); } else if(date.getDay() == 6) { date.setDate(date.getDate() + 2); } else { date.setDate(date.getDate() + 1); } $('.insert-date').text((date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ':' + (date.getMonth() < 10 ? '0' + date.getMonth() : date.getMonth()) + ':' + date.getFullYear()); });
Нужно изменить date.getDaу на date.getDate в выводе
Вроде сейчас правильно выводит, но месяц - 08, а не 09, переделал так:
$('.insert-date').text((date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '.' + ((date.getMonth() + 1) < 10 ? '0' + (date.getMonth() +1) : date.getMonth()) + '.' + date.getFullYear());
Надо посмотреть некоторое время, как будет себя вести. Спасибо.
#15
Отправлено 01 Сентябрь 2014 - 13:06
Мне нужно в будни дни показывать один баннер, в выходные другой.
Прочитав тему понял что без Java не обойтись. Вот моя функция для определения того каков текущий день - будний или выходной:
function IsWeekend() { var today = new Date(); // получаем текущую дату if(today.getDay() == 0 || today.getDay() == 6) { // если 0 - сегодня воскресенье или если 6 - суббота return true; } else { return false; } });
Её я добавлю к main.js
Теперь вопрос: как мне ёё вставить внутрь конструкции {% IF %} ... {% ENDIF %}, т.е. как её использовать в HTML-коде?
Т.е. мне надо вставить в шаблон HTML нечто вроде (я понимаю что так нельзя):
{% IF IsWeekend() %}
// рисуем баннер выходного дня
{% ELSE %}
// рисуем обычный баннер
{% ENDIF %}
Как вызывать функции Java, получать результат и использовать в условных конструкциях?
#16
Отправлено 02 Сентябрь 2014 - 00:42
<div class="banners"> <div class="banner active" rel="6"> Код вашего первого баннера </div> <div class="banner" rel="0"> Код вашего второго баннера </div> </div>
После этого в файл стилей (css) вставляете класс
.banners .banner:not(.active) { display: none; }
далее в качестве js используете код, который размещаете в файле main.js
$(function() { $('.banners .banner').removeClass('active') .filter('[rel="' + (new Date()).getDay() + '"]').addClass('active'); });
Если в последствии понадобится добавить еще один баннер на другой день недели, то просто вставьте дополнительный блок
<div class="banner" rel="2"> Код вашего баннера </div>
Где значение атрибута rel является днем недели.
#17
Отправлено 12 Май 2015 - 19:02
551 (10 Сентябрь 2012 - 12:25) писал:
$('.insert-date').text((date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + '.' + ((date.getMonth() + 1) < 10 ? '0' + (date.getMonth() +1) : date.getMonth()) + '.' + date.getFullYear());
Надо посмотреть некоторое время, как будет себя вести. Спасибо.
Добрый день, пробую данный код, пока вроде работает, но мне надо еще учитывать и время, например, если заказ оформляется после 9 часов утра, то доставка будет завтра, т е к текущей дате прибавляется 1 день, а если до 9 часов утра, то надо показывать текущий день. Подскажите как реализовать? сайт Artishka.ru
Vaccina (10 Сентябрь 2012 - 07:41) писал:
$(document).ready(function(){ var mtime = parseInt($('.current-time').attr('id')) * 1000; var date = new Date(parseInt(mtime)); if(date.getDay() == 5) { date.setDate(date.getDate() + 3); } else if(date.getDay() == 6) { date.setDate(date.getDate() + 2); } else { date.setDate(date.getDate() + 1); } $('.insert-date').text((date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ':' + (date.getMonth() < 10 ? '0' + date.getMonth() : date.getMonth()) + ':' + date.getFullYear()); });
Нужно изменить date.getDaу на date.getDate в выводе
И еще хотел спросить: откуда данный скрипт берет дату и время? с компа пользователя или с другого места?
#18
Отправлено 13 Май 2015 - 16:13
#19
Отправлено 13 Май 2015 - 16:44
Все корректно отображает. Доставка на следующее число.
Вопрос другой, у нас склад работает с понедельника по пятницу, и в выходные товар не выдают.
Надо сделать так, чтобы не отображались выходные, т.е. если сегодня пятница, к примеру 4мая, то доставка в этот день указывалась уже на 7мая (понедельник). Спасибо.
Код:
Цитата
var mydate=new Date()
var year=mydate.getYear()
if (year < 1000) year+=1900
var tomorrow = new Date(mydate.getTime() + (24 * 60 * 60 * 1000));
var dayTomorrow = tomorrow.getDate();
var monthTomorrow = tomorrow.getMonth();
//var dayarray = new Array("воскресение", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота")
var montharray = new Array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря")
document.write(" "+dayTomorrow+" "+montharray[monthTomorrow]+"")
</script> </DIV>
</div>
#20
Отправлено 14 Май 2015 - 04:03
http://forum.storela...время-доставки/
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных