[英]How can I update date every Sunday?
所以我正在使用一些 JavaScript 日期進行故障排除。 我正在使用 NodeJS Mongoose 和 React。 我想更新數據庫中的所有日期,但我想每個周末都這樣做並保持時間,根本不要更改它們。
假設我有 2020 年 1 月 22 日這樣的日子,在周末期間,日期將更新為 1 月 29 日,然后是 2 月 5 日。 數據庫中的所有內容都像ISODate("2020-01-16T16:27:15.003Z")
一樣保存,我有一個代碼可以隨時更新這些日期。 我無法弄清楚setDate()
的主體應該如何自動更改月份和日期,同時每次都保持相同的時間 - 所以周末的 22/01/2020 下午 4:00 將更改為 29/01/2020 4:00 PM。
我已經嘗試使用momentjs
來處理日期,但它不適用於我的數據庫。
cron.schedule("* * * * * *",async function() {
const courses = await Course.find({});
courses.forEach(course => {
const newDate = () => {
let date = new Date();
return date.toISOString();
};
Course.updateMany({
"nextClasses": course.nextClasses === course.startingDate ? course.startingDate :
course.nextClasses
},{$set: {"nextClasses": newDate()}},(err) => console.log(err))
});
}
這是負責更改日期的代碼,現在它每秒將所有內容更改為當前日期(有意為驗證目的)
這將使每個星期日的所有日期增加 7 天。
const addDays = (date, days) => {
const result = new Date(date);
result.setDate(result.getDate() + days);
return result;
};
cron.schedule("0 0 * * 0", async function() {
const courses = await Course.find({});
courses.forEach(async (course) => {
await course.update(
{
$set: {
nextClasses: addDays(course.nextClasses, 7)
}
},
(err) => console.log(err)
);
});
});
替代方法
cron.schedule("0 0 * * 0", async function() {
const courses = await Course.find({});
courses.forEach(async (course) => {
course.nextClasses.setDate(course.nextClasses.getDate() + 7);
course.markModified("nextClasses"); /* Mongoose does not track changes made by built-in Date methods */
await course.save((err) => console.log(err));
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.