[英]Date.UTC() returns last day of previous month while getUTCFullYear(), getUTCMonth() returns correctly first day of correct month
[英]While converting string to date, the first day of a given month is being converted into the last day of the previous month
将字符串转换为日期时,将给定月份的第一天转换为上个月的最后一天。 例如,在这里我转换了 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) {}
感谢您的帮助
那是因为当您将日期"2019-10-01"
提供给 new Date() 时。 function 以这种方式读取它"2019-10-01 00:00:00 GMT"
然后继续将其转换为您的时区 GMT-4 ,即"2019-09-30 20:00:00 GMT-4"
。
因此,您有两种解决方案,您可以在输入中指定时区。
或者由于 output 在我们的时区,您将其转换为 UTC/GMT:
var dt = new Date('2019-10-01'); console.log(dt.toUTCString());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.