Недельное увеличение с использованием Javascript
Я работаю над приложением напоминаний, использующим Phonegap [Javascript + Html5], в котором пользователь вводит еженедельное задание, о котором ему хотелось бы напомнить, и я должен предупреждать об этом каждую неделю в этот день.
Теперь дело в том, что я использую плагин Phonegap Local Notification, чтобы оповещать уведомления, этот плагин берет дату, чтобы предупредить вовремя.
Как я могу дать нужную дату каждую неделю.. т.е.: Как я могу увеличить счетчик, когда день заканчивается?
Обычно, если дата, если заранее известен: я использую эту функцию:
if (typeof plugins !== "undefined")
{
var RId = 0;
var rDate =new Date();
var RemDate = reminder_deadline.split("T")[0];
var RemTimeB = reminder_deadline.split("T")[1];
var RemTime = RemTimeB.split("Z")[0];
var RYear = RemDate.split("-")[0];
var RMonth = RemDate.split("-")[1];
var RMonth = RMonth-1;
var RDay = RemDate.split("-")[2];
var RHour = RemTime.split(":")[0];
var RMinute = RemTime.split(":")[1];
var RSecond = RemTime.split(":")[2];
alert(RYear+".."+RMonth+".."+RDay+".."+RHour+".."+RMinute+".."+RSecond);
rDate.setFullYear(RYear);
rDate.setMonth(RMonth);
rDate.setDate(RDay);
rDate.setHours(RHour);
rDate.setMinutes(RMinute);
rDate.setSeconds(RSecond);
plugins.localNotification
.add({
date: rDate,
message: reminder_name,
id: RId
});
}
RId++;
}
Но теперь пользователь просто войдет в понедельник... и я должен уведомлять его каждый понедельник... Так можно ли это сделать?
1 ответ
var today = new Date();
var nextWeek = new Date();
nextWeek.setDate(nextWeek.getDate() + 7);
Вот фрагмент, который дает вам последний понедельник. Если вам нужен другой день, просто отредактируйте строку var daysOffMonday
соответственно (0= воскресенье, 1= понедельник, ...)
Затем с помощью приведенного выше фрагмента вы можете получить следующий понедельник, следующий за ним и т. Д.
var today = new Date();
var dayOfWeek = today.getDay();
var daysOffMonday = 1 - dayOfWeek;
var lastMonday = new Date();
lastMonday.setDate(lastMonday.getDate() + daysOffMonday);
alert(lastMonday);