Установка дня недели в javascript
Я использую плагин localgotation phonegap, который указывает, что я могу настроить уведомление для еженедельного уведомления.
Однако, похоже, что объект даты javascript имеет только .getDay()
, а не .setDay()
.
У меня есть json-объект дней недели, которые я хочу настроить,
set_days = {"mon":false, "tues":true,"wed":false,"thurs":true...}
как вы устанавливаете день в javascript? Поскольку он устанавливает уведомление, этот день должен быть в будущем, поэтому я не хочу получать самую последнюю "среду", но только следующую "среду".
вот ссылка на плагин, но я не думаю, что это действительно специфично для плагина.
Ответы
Ответ 1
как вы устанавливаете день в javascript?
Ты имеешь в виду, на текущей неделе? Когда начинается неделя?
Предполагая, что он начинается в воскресенье (как в getDay
: 0 - воскресенье, 1 - понедельник и т.д.), это будет работать:
var date, daytoset; // given: a Date object and a integer representing the week day
var currentDay = date.getDay();
var distance = daytoset - currentDay;
date.setDate(date.getDate() + distance);
Чтобы установить дату в будний день в течение следующих 7 дней, используйте это:
var distance = (daytoset + 7 - currentDay) % 7;
Ответ 2
Вы можете создать метод setDay
:
Date.prototype.setDay = function(dayOfWeek) {
this.setDate(this.getDate() - this.getDay() + dayOfWeek);
};
Затем установите дату на следующей неделе в среду:
var d = new Date();
d.setDay(10);
Ответ 3
Создается ли новый объект даты для установки?
var d = new Date();
d.setDate(11);
приведет к
Tue Aug 14 2012 00:31:56 GMT-0500 (Central Daylight Time)
У объекта date есть метод set.
http://www.tutorialspoint.com/javascript/javascript_date_object.htm