登录
首页 >  文章 >  前端

JS 字符串转时间为何会出现月份错位?

时间:2024-11-22 22:30:51 246浏览 收藏

今天golang学习网给大家带来了《JS 字符串转时间为何会出现月份错位?》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

JS 字符串转时间为何会出现月份错位?

js 字符串转时间误差问题

在将字符串转为时间时,可能会遇到月份错位的情况。例如,将 "2020-10-01" 转换为时间后,月份变成了 11 月。

原因

要了解其中的原因,我们需要查看 new date 源码。new date 函数接受一个字符串参数,并将其解析为日期对象。在这个过程中,月份被解析为 0 到 11 的数字,其中 0 代表 1 月,11 代表 12 月。

因此,当将 "2020-10-01" 传递给 new date 时,解析函数将月份解析为 10,这代表的是 11 月,而不是 10 月。

解决方案

要解决这个问题,可以在将字符串转换为时间之前对月份进行调整。例如:

const dateStr = "2020-10-01"
const month = parseInt(dateStr.substring(5, 7)) - 1;
const date = new Date(dateStr.substring(0, 4), month, dateStr.substring(8, 10));

这样,转换后的 date 对象的月份将正确显示为 10 月。

今天关于《JS 字符串转时间为何会出现月份错位?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>