为了账号安全,请及时绑定邮箱和手机立即绑定

将字符串转换为日期时,给定月份的第一天被转换为上个月的最后一天

将字符串转换为日期时,给定月份的第一天被转换为上个月的最后一天

GCT1015 2021-12-23 19:49:40
将字符串转换为日期时,给定月份的第一天将转换为上个月的最后一天。例如,在这里我转换了 10 月的第一天,但得到了 9 月的最后一天。const fyStr = +this.fiscalYear - 1 + '-10-01';       //fyStr = "2019-10-01"const startDate = new Date(fyStr);                   //startDate = Mon Sep 30 2019 20:00:00 GMT-0400 (Eastern Daylight Time) {}我将日期更改为 11 月的第一天,现在我要到 10 月的最后一天。const fyStr = +this.fiscalYear - 1 + '-11-01';       //fyStr = "2019-11-01"const startDate = new Date(fyStr);                   //startDate = Mon Oct 31 2019 20:00:00 GMT-0400 (Eastern Daylight Time) {}谢谢你的帮助
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

那是因为当您将日期指定"2019-10-01"给 new Date() 时。该函数以这种方式读取它,"2019-10-01 00:00:00 GMT"然后继续将其转换为您的时区 GMT-4,即"2019-09-30 20:00:00 GMT-4".


因此,您有两种解决方案,要么在输入中指定时区。


或者由于输出在我们的时区中,您将其转换为 UTC/GMT:


var dt = new Date('2019-10-01');


console.log(dt.toUTCString());


查看完整回答
反对 回复 2021-12-23
  • 1 回答
  • 0 关注
  • 225 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信