JavaScript,new Date()使用的坑,转换日期不对,不同国家时间不同

在使用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());

时间转换

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值