gpt4 book ai didi

javascript - 当前日期转换为 10 天前和 10 天后

转载 作者:行者123 更新时间:2023-12-01 15:55:24 28 4
gpt4 key购买 nike

我有这段代码,可以将当前日期转换为这种格式 2020-08-20 。但是我如何更改它以给出今天之后 10 天以及今天之前 10 天的日期。

例如今天是2020-08-20我试图从今天起计算10天2020-08-30

这是我的代码

const dateConverter = (dateIn) => {
var year = dateIn.getFullYear();
var month = dateIn.getMonth() + 1; // getMonth() is zero-based
var day = dateIn.getDate();
return year + "-" + month.toString().padStart(2, "0") + "-" + day.toString().padStart(2, "0");
}

var today = new Date();
console.log(dateConverter(today));

最佳答案

这有点棘手。首先将日期的时间设置为 12 点,以避免夏令时/冬令时更改带来的问题。然后使用 getDate 添加 10 来表示额外的天数,并使用 setDate 添加新值。现在您有了一个以毫秒为单位的值,从中生成一个新日期来获取日期对象。对于第二个日期,减去 20 天,因为原始日期已被之前的操作更改,并执行所有其他操作。

使用 getFullYeargetMonthgetDate 设置日期输出的格式。因为月份在JS中处理是从0到11加1个月。月份和日期可以是 1 位数字,但您希望它是 2 位数字,因此请在字符串 "0" 之前添加,并使用 slice 获取它的最后 2 个字符。
对两个日期进行格式化并将它们作为数组返回。

const dateConverter = (dateIn) => {
dateIn.setHours(12);
let dateIn10days = new Date(dateIn.setDate(dateIn.getDate() + 10));
let dateFor10days = new Date(dateIn.setDate(dateIn.getDate() - 20));

let strIn10Days = dateIn10days.getFullYear() + '-' + ('0' +(dateIn10days.getMonth()+1)).slice(-2) + '-' + ('0' + dateIn10days.getDate()).slice(-2);
let strFor10Days = dateFor10days.getFullYear() + '-' + ('0' +(dateFor10days.getMonth()+1)).slice(-2) + '-' + ('0' + dateFor10days.getDate()).slice(-2);
return [strFor10Days, strIn10Days];
}

let today = new Date();
console.log(dateConverter(today));

关于javascript - 当前日期转换为 10 天前和 10 天后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63489295/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com