JS Date 的 toLocaleString()方法的坑

JS Date 的 toLocaleString()方法 各个浏览器处理方式不一样,不兼容
同一个时间戳 在IEdge转换正常,在谷歌转换成时间字符串多12小时
!!!

吃了饭回来发现数据又正常了,看来toLocaleString对某些时间戳数据的转换有问题

问题数据:
new Date(1534867845669).toLocaleString()
“2018/8/22 上午12:10:45”
new Date(1534867845669).toUTCString()
“Tue, 21 Aug 2018 16:10:45 GMT”

时过境迁,我知道为啥多12小时了!!
原因:文字表述上面有问题,上午12:xx:xx其实是凌晨的意思,相对的下午12:xx:xx其实是正午的意思。
方法:放了方便中国人(可能是就我自己理解有错误吧) 上代码:
data.map(val => { var date = new Date(+val.timestamp).toLocaleString(); // 解决toLocaleString12:00上下午不正确问题 if(date.includes('下午12:00:00')){ date = date.replace(/下午12:00:00/,'上午12:00:00'); } else if(date.includes('上午12:00:00')){ date = date.replace(/上午12:00:00/,'下午12:00:00') } else{ } this.date.push(date); });

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值