У меня есть этот код, который получает текущую дату, а затем получайте также дни недели. Иногда этот код не работает, например, сегодня 08/15, я получу 08/13. Мне нужна функция, чтобы получить предыдущие и следующие дни недели.Получите предыдущие и следующие дни недели в javascript
var self = this;
var curr = new Date;
self.mult = 0;
self.firstDate = new Date;
self.lastDate = new Date;
var first = curr.getDate() - (curr.getDay()-1);
var last = first + 6;
self.firstDate(Utils.dateFormat(new Date(curr.setDate(first)),"%Y-%m-%d", true));
self.lastDate(Utils.dateFormat(new Date(curr.setDate(last)),"%Y-%m-%d", true));
И это функция, чтобы увидеть предыдущие дни недели,
var self= this;
var curr = new Date;
self.mult(self.mult()-7);
var first = curr.getDate() - (curr.getDay()-1) + self.mult();
var last = first + 5;
if(self.mult() <= 0){
last = last + 1;
}
self.firstDate(Utils.dateFormat(new Date(curr.setDate(first)),"%Y-%m-%d", true));
self.lastDate(Utils.dateFormat(new Date(curr.setDate(last)),"%Y-%m-%d", true));
И это функция, чтобы увидеть в последующие дни недели,
var self= this;
var curr = new Date;
self.mult(self.mult()+7);
var first = curr.getDate() - (curr.getDay()-1) + self.mult();
var last = first + 5;
self.firstDate(Utils.dateFormat(new Date(curr.setDate(first)),"%Y-%m-%d", true));
self.lastDate(Utils.dateFormat(new Date(curr.setDate(last)),"%Y-%m-%d", true));
Я не уверен, но я думаю, что только предыдущие дни недели - проблема.
Вот пример ситуации.
Сценарий 1: Пользователь посетить страницу, сегодня 09/15 то firstDate должно быть 09/12, то lastDate должен быть 09/18 пользователь нажимает дальше, то firstDate должен быть 09/19 и lastDate - 09/25 пользователь нажимает следующий раз, затем firstDate - 09/26, а lastDate - 10/02 пользователь нажимает предыдущий, тогда firstDate должен быть 09/19, а lastDate - 09/25
Сценарий 2: Пользователь на странице, сегодня 09/15 , тогда firstDate должен быть 09/12, а lastDate должен быть 09/18 пользователь нажимает предыдущий, затем firstDate должен быть 09/5, а lastDate - 09/11 пользователь нажимает предыдущий раз, затем firstDate должен быть 08/29, а lastDate - 09/4 пользователь нажимает следующий, тогда firstDate должен быть 09/5 и lastDate is 09/11
Может ли кто-нибудь ответить на код, который может выполнять мои сценарии?
Почему вы поставите 'this' в переменную' self'? – evolutionxbox
@evolutionxbox это стандартный метод, чтобы сохранить это, когда «это» в противном случае было бы изменено вне контекста, например, в '$ .each' loop,' this' является значением внутри цикла, а 'self' по-прежнему является' this 'извне цикла. Здесь нет никакого смысла, но, учитывая отступ, я бы предположил, что есть другой код, который не был включен для краткости. –
@ freedomn-m Спасибо в любом случае. Я уже знал, что ты сказал. Просто OP использует это без причины. – evolutionxbox