zoukankan      html  css  js  c++  java
  • 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           这个大神说得很具体。

      

      

      

  • 相关阅读:
    wikioi 1002 旁路
    OS X升级到10.10使用后pod故障解决方案出现
    Python challenge 3
    maven 编
    独立博客网站FansUnion.cn操作2多年的经验和教训以及未来计划
    Wakelock API详解
    智遥工作流——会签与多人审批区别
    mysql 参数optimizer_switch
    OpenRisc-31-关于在设计具有DMA功能的ipcore时的虚实地址转换问题的分析与解决
    TROUBLE SHOOTING: FRM-30425
  • 原文地址:https://www.cnblogs.com/nogodie/p/10076781.html
Copyright © 2011-2022 走看看