• js Date对象要注意的问题(时间转换)


    1、时间戳和时间对象可以灵活转变:

    let  n = new Date()  // 返回的是当前时间对应的国际时间
    let nt =n.getTime()
    let n2 =new Date(nt)
    console.log(n,nt,n2)

    输出为当前时间和时间戳:

    Date 2018-12-06T06:41:56.217Z

    1544078516217

    Date 2018-12-06T06:41:56.217Z

    2、时间转换的字符串参数格式不同,返回的时间格式有时会不同

    // 时分秒如果有参数,返回的是参数中的本地时间对应的国际时间。
    let i = new Date('2018-12-06 0:0:0')
    let j = new Date('2018/12/06 0:0:0')
    
    输出 :Date 2018-12-05T16:00:00.000Z
        Date 2018-12-05T16:00:00.000Z
    // 时分秒如果没有参数, ‘-’ 符号的返回的是国际标准时间0点,‘/’符号返回的是本地时间0点对应的国际时间
    let i2 = new Date('2018-12-06')
    let j2= new Date('2018/12/06')
    console.log(i2,j2)

    输出:Date 2018-12-06T00:00:00.000Z
        Date 2018-12-05T16:00:00.000Z
    // 时间戳对比确认
    console.log(i.getTime(),j.getTime(),i2.getTime(),j2.getTime())
    输出:1544025600000 1544025600000 1544054400000 1544025600000 
    console.log(j == j2)
    输出: false

    3、非字符串参数,记得月份是0-11:

    let ii = new Date(2018,12,6,0,0,0)
    let ii2 = new Date(2018,12,6)
    console.log(ii,ii2)

    输出的是本地时间0时对应的国际时间:

    Date 2019-01-05T16:00:00.000Z
    Date 2019-01-05T16:00:00.000Z

    4、参数为时间戳,输出的是国际时间

    let i1 =new Date('2018-12-06 0:0:0')
    let i2 =new Date('2018-12-06 0:0:0').getTime()
    let i3 =new Date(i2)
    
    console.log(i1,i2,i3)

    输出:

    Date 2018-12-05T16:00:00.000Z

    1544025600000

    Date 2018-12-05T16:00:00.000Z
     
     

     总结:慎用 2018-12-06 格式的参数,传入Date的参数大都代表本地时间,输出的值都是对应的国际时间

    附加控制台返回值图:

    友情链接: https://www.cnblogs.com/hjsblogs/p/5842717.html           这个大神说得很具体。

      

      

      

  • 相关阅读:
    通过docker创建并使用apache容器
    Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程
    Neo4j视频教程 Neo4j 图数据库视频教程
    两台centos之间传送文件
    Spring mvc整合freemarker详解
    C#异步编程
    chrome使用技巧(看了定不让你失望)
    Redis可视化工具 Redis Desktop Manager
    Mongodb数据查询 | Mongodb
    PowerDesigner最基础的使用方法入门学习
  • 原文地址:https://www.cnblogs.com/nogodie/p/10076781.html
Copyright © 2020-2023  润新知