
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 字符串转时间为何会出现月份错位?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1496889.html
微信扫一扫
支付宝扫一扫