Так же, как добавление дат в JavaScipt, моя библиотека DateExtensions делает это достаточно хорошо, я думаю.Вы можете получить его здесь:
http://depressedpress.com/javascript-extensions/dp_dateextensions/
После повторного вызова вы можете вызвать "add ()" в качестве метода для любой действительной даты и передать его любой из многих частей даты (секунды, минуты)., дни, часы и т. д.).Таким образом, предполагая, что "curDate" является допустимым объектом даты в JavaScript, вы можете добавить 5 дней, например:
newDate = curDate.add (5, "days");
Использование отрицательного значения вычтет:
newDate = curDate.add (-5, "дни");
Получив нужную дату, вы можете использовать метод dateFormat () библиотеки, чтобы отобразить ее следующим образом:
curDate.dateFormat ("MM / DD / YYYY");
По ссылке имеется полная документация.
Целочисленные значения для дня недели
Что касается получения целочисленного значения, которое вы хотите, на самом деле это проще, чем выглядит(и вам не нужно "если" только немного математики).Метод getDay () возвращает день недели с воскресеньем «0» и субботой «6».Таким образом, неделя, начиная с воскресенья, обычно составляет:
0,1,2,3,4,5,6
Сначала вы хотите изменить эту шкалу на противоположную.Это легко сделать с помощью вычитания, взяв 7 (от общего числа членов набора) из значения.Это дает вам шкалу:
-7, -6, -5, -4, -3, -2, -1
Мы приближаемся.Вы также хотите, чтобы первое значение было равно нулю.Самый простой способ (я думаю) сделать это - получить модуль (остаток) значения по общему количеству членов.Все, что в основном делает, это превращает «-7» в ноль, а остальные оставляют в покое, давая нам следующее:
0, -6, -5, -4, -3, -2, -1
Почти готово.Наконец, вам не нужны отрицательные числа, поэтому вам нужно использовать метод Math.abs (), чтобы убрать знак (получить абсолютное значение), оставив нам желаемый результат:
0,6,5,4, 3,2,1
Несмотря на все разговоры, резкий код довольно компактен:
Math.abs ((cnt-7)% 7)
Заключение висходный пример дает нам:
newDate = curDate.add (Math.abs ((curDate.getDay () - 7)% 7), "days");
ServerVs Client
Однако примите комментарий nnnnnn близко к сердцу: в JavaScript функция getDate () получает текущую дату / время машины, на которой она работает - в случае веб-страницы, которая является клиентом,не сервер.
Если вы на самом деле имели в виду время клиента, то все готово.Если вам действительно нужно время сервера, однако, это раздражает до невозможности.Если вы владеете сервером, то на самом деле не сложно установить правило, включающее текущий сервер в файл cookie, в который входит каждый выполненный запрос (вы можете использовать мою библиотеку файлов cookie, также на сайте выше, для доступа к информации!)
Это сложнее, но в зависимости от сервера вы также можете создать серверное включение старой школы, добавляющее немного JavaScript на каждую страницу (предпочтительно в виде отмеченной замены в заголовке), которая жестко кодируетдата как глобальная переменная.
Вы также можете создать веб-службу, которая возвращает текущее время сервера, но накладные расходы клиента для него являются безумными по сравнению с доставляемыми данными.
Еслисервер НЕ ваш (и вы не можете заставить владельца предоставить вышеупомянутое), тогда единственный реальный потенциальный вариант - это прямой HTTP-вызов и проверка HTTP-заголовка «Date».Опять же, однако, накладные расходы на это огромны по сравнению с возвращением, но это действительно единственный способ.Однако любая подобная система должна быть очень гибкой, поскольку любой конкретный сервер может не возвращать заголовок даты или может возвращать его неправильно.
Даже если это работает, поймите, что вы все еще не получаете «серверное» время - или, по крайней мере, не тот сервер, который вам нужен.Например, в многоуровневой архитектуре сервер приложений может отображать страницу и передавать ее на веб-сервер для возврата - вы получите время веб-сервера, а не сервер приложений.Любое количество устройств может также переписать заголовки (например, обычно используют выделенные устройства SSL для разгрузки всей работы по шифрованию - они часто перезаписывают сами заголовки).
Извините, что слишком технически - JavaScript - этобезусловно, одна область, где, к сожалению, редко возникает «простой вопрос».; ^)
Удачи!