如果年份会改变,moment js 会添加不工作的天数
moment js add days not working if the year will change
如果我们添加天数并将结果作为下一年的日期,那么我们会从预期中收到其他内容
// Start date (DD/MM/YYYY):
let currentfromdate = '01/10/2021';
// add 6 months:
let maxdate = moment(currentfromdate).add(180, 'days').format('DD/MM/YYYY');
let maxdate2 = moment(currentfromdate).add(6, 'months').format('DD/MM/YYYY');
// Actual output in DD/MM/YYYY:
maxdate: "08/07/2021"
maxdate2: "10/07/2021"
// expected output:
maxdate: "29/03/2021"
maxdate2: "31/03/2021"
目前您的代码默认解析 MM/DD/YYYY
格式的原始日期。因此,您从解析 01/10/2021
中得到 Jan 10 2021
的解析日期,因此当添加 6 个月时,您会得到 July 10 2021
.
的结果
您需要像这样指定您的解析格式:
const dateParsed = moment(currentfromdate, "DD/MM/YYYY");
如果我们添加天数并将结果作为下一年的日期,那么我们会从预期中收到其他内容
// Start date (DD/MM/YYYY):
let currentfromdate = '01/10/2021';
// add 6 months:
let maxdate = moment(currentfromdate).add(180, 'days').format('DD/MM/YYYY');
let maxdate2 = moment(currentfromdate).add(6, 'months').format('DD/MM/YYYY');
// Actual output in DD/MM/YYYY:
maxdate: "08/07/2021"
maxdate2: "10/07/2021"
// expected output:
maxdate: "29/03/2021"
maxdate2: "31/03/2021"
目前您的代码默认解析 MM/DD/YYYY
格式的原始日期。因此,您从解析 01/10/2021
中得到 Jan 10 2021
的解析日期,因此当添加 6 个月时,您会得到 July 10 2021
.
您需要像这样指定您的解析格式:
const dateParsed = moment(currentfromdate, "DD/MM/YYYY");