zoukankan      html  css  js  c++  java
  • new Date(str)返回的时间结果在移动端比PC端快了8小时

      最近开发过程中,后端传过来一个“2018-03-15T17:53:19.6307928”字符串,需要将字符串转换成“2018-03-15  17:53”的格式展示出来。首先我使用了var time=new Date("2018-03-15T17:53:19.6307928")方法将时间转换成标准时间格式,再通过time.getFullYear()等方法获取到年月日时分的信息,最后通过字符串拼接成为想要的格式。

      OK,这个方法最开始一直没有问题,在PC浏览器上打开,一切正常,但是后来在移动端打开时,发现转换后的字符串,时间比正确时间快了8小时,后来多次测试发现,应该是不同终端不同浏览器对于该时间格式的解析有区别,在windowsPC浏览器中,我们修改了电脑的时区设置,new Date(str)返回的时间信息如下

      

    new Date('2018-03-15T17:53:19.6307928')
    Thu Mar 15 2018 17:53:19 GMT+0800 (中国标准时间)
    new Date('2018-03-15T17:53:19.6307928')
    Thu Mar 15 2018 17:53:19 GMT+0900 (Japan Standard Time)

      PC端不会修改你的时间,只是将其转换成本地时间的格式,然而在移动端,其返回的则是

    new Date('2018-03-15T17:53:19.6307928')
    Thu Mar 16 2018 01:53:19 GMT+0800 (CST)

      也就是移动端默认传入的时间是0时区的时间,在将其转换为本地时间格式时加了八小时上去,这样的话就出现了移动端和PC端显示时间不同的问题,因此在这里不建议后端传“2018-03-15T17:53:19.6307928”这种时间格式的字符串,而是在后端直接做时间转换,传过来“2018-03-15  17:53”格式的字符串直接进行展示。

  • 相关阅读:
    点击新闻弹出新闻内容,并且新闻内容根据鼠标移动
    阻止用户复制页面上的文字的几种方法
    js简易聊天框- 鼠标和回车键发送消息
    Java——package和import关键字
    Java——static关键字
    Java——单例模式初步
    Java——this关键字
    Java面向对象的特征一:封装性
    Java再谈方法
    Java——对象
  • 原文地址:https://www.cnblogs.com/Miracle-ZLZ/p/8580175.html
Copyright © 2011-2022 走看看