在使用JavaScript的Date类时,我发现了一个问题:
JavaScript new Date()使用的坑,字符串转时间少了一天,当电脑系统修改不同时区的地址时,比如修改为太平洋时间(美国和加拿大),
(1)月份是两位数,06和6不一样,new Date(“2022-06-01”)、new Date(“2022-6-01”)、new Date("2022-06-01 ")会出现两种情况。会出现少一天的情况。
(2)日期是两位数,01和1不一样,就是new Date(“2022-06-1”)、new Date(“2022-06-01”)、new Date("2022-06-01 ")会出现两种情况。会出现少一天的情况。
注:只要有一个为一位数(比如6月不要写06月或者1号不要写01号),转换就正常
(3)比如你的电脑现在是中国时间,你new Date(“2022-06-01”) 最后会是2022-06-01 08:00:00
(4)解决建议:最好是加上小时和分钟,可能是其他国家的转换格式有所不同,导致转换后的数据不同
new Date(“2022-06-01 00:00”)、new Date(“2022-6-01 00:00”)最后转换出来的都是和字符串时间是一样的
let date = new Date("2022-06-01");
//如果此时你的电脑是太平洋时间(美国和加拿大),转换后的时间则为:2022-5-31
console.log("转换后的时间:",date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate());