左小白的技术日常
Github

Date.prototype.toLocaleString()在0点或12点时转换异常的问题

这篇文章发布于 2020/07/26,归类于
标签:
toLocaleString时间异常的情况toLocaleString在0点或12点时时间转换问题

在使用toLocaleString把Date转为字符串时,需要额外注意时间为 '00:00:00' 和 '12:00:00' 的情况,它们分别会被转为 上午12:00:00,下午12点,下面来看看

a = new Date('2020/04/10 00:00:00') 
// Fri Apr 10 2020 00:00:00 GMT+0800 (中国标准时间)

a.toLocaleString() // "2020/4/10 上午12:00:00"
a.getHours() // 0
a.getMinutes() // 0
a.getSeconds() // 0

那我们来试试 '12:00:00' 的情况

a = new Date('2020/04/10 12:00:00') 
// Fri Apr 10 2020 12:00:00 GMT+0800 (中国标准时间)
a.toLocaleString() // "2020/4/10 下午12:00:00"
a.getHours() // 12

综上:虽然Date对象的toLocaleString()比较好用,但还是仅用日期方面的toLocaleDateString(),时间方面的还是尽量不要使用

参考:Date.prototype.toLocaleString() - MDN