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”格式的字符串直接进行展示。

  • 相关阅读:
    JSP/Servlet开发——第二章 JSP数据交互(二)
    JSP/Servlet开发——第一章 动态网页基础
    Java OOP——第三章 多态
    Java OOP——第二章 继承
    Java OOP——第一章 对象和封装
    Java OOP——第四章 异常
    Linux 系统启动过程
    动画链接
    js判断浏览器类型
    localStorage封装
  • 原文地址:https://www.cnblogs.com/Miracle-ZLZ/p/8580175.html
Copyright © 2011-2022 走看看