将字符串转换为日期时,给定月份的第一天将转换为上个月的最后一天。例如,这里我要转换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) {}
感谢您的帮助
答案 0 :(得分:1)
那是因为当您将日期"2019-10-01"
赋予新的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());