V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
imherer
V2EX  ›  Node.js

js 时间如何比较?

  •  
  •   imherer · 2017-07-25 15:34:44 +08:00 · 3210 次点击
    这是一个创建于 2460 天前的主题,其中的信息可能已经有所发展或是发生改变。
    var t1 = new Date('2017-01-01 23:23'),
        t2 = new Date('2017-01-01 23:23');
    	  
    t1 == t2 // false
    t1 === t2 //false
    t1 > t2 // false
    t1 < t2 //false
    t1 >= t2 // true
    t1 <= t2 //true
    

    各位时间一般都怎么比较的,换成时间戳比的吗? 能直接用字符串形式的时间去比较吗?

    23 条回复    2017-07-27 13:28:50 +08:00
    linus3389
        1
    linus3389  
       2017-07-25 15:37:39 +08:00   ❤️ 1
    时间戳....
    invoke
        2
    invoke  
       2017-07-25 15:38:32 +08:00   ❤️ 1
    用时间戳比啊。。
    scriptB0y
        3
    scriptB0y  
       2017-07-25 15:40:42 +08:00   ❤️ 1
    时间肯定是用时间戳比较的,用 str 不科学。

    2017-07-25T07:39:35.488928+00:00
    2017-07-25T06:39:35.488928+08:00
    你告诉我哪个早
    Famio
        4
    Famio  
       2017-07-25 16:01:53 +08:00
    不止 js 用时间戳比时间,计算时间,我想大部分语言都是把时间转成时间戳来计算的。
    imherer
        5
    imherer  
    OP
       2017-07-25 16:04:17 +08:00
    @Famio
    zhangbohun
        6
    zhangbohun  
       2017-07-25 16:37:58 +08:00 via Android
    用毫秒比
    wly19960911
        7
    wly19960911  
       2017-07-25 17:01:49 +08:00 via Android
    我吐槽下,你拿 date 对象比较,能比较出什么呢 hhh 内存地址吗
    ntupc
        8
    ntupc  
       2017-07-25 17:10:14 +08:00
    对象的比较毫无意义
    stantbyme
        9
    stantbyme  
       2017-07-25 17:26:06 +08:00
    对比时间戳吧 可以试试 momentjs
    laobubu
        10
    laobubu  
       2017-07-25 17:38:11 +08:00
    在 t1 和 t2 前面加一个 + ,转化成时间戳再比较。

    +t1 == +t2
    kimown
        11
    kimown  
       2017-07-25 18:52:53 +08:00 via Android
    别自己写重复代码,直接 moment 库
    maomaomao001
        12
    maomaomao001  
       2017-07-25 19:03:25 +08:00 via Android
    用 momentjs 处理时间比较好
    alexgor
        13
    alexgor  
       2017-07-25 19:36:03 +08:00 via Android
    帖子背景怎么弄的
    klesh
        14
    klesh  
       2017-07-25 19:51:30 +08:00 via Android
    momentjs
    bombless
        15
    bombless  
       2017-07-25 19:51:47 +08:00 via Android
    nodejs 节点专用主题
    awesomes
        16
    awesomes  
       2017-07-25 20:01:19 +08:00
    aleen42
        17
    aleen42  
       2017-07-25 20:23:28 +08:00
    t1.valueOf() === t2.valueOf()
    autoxbc
        18
    autoxbc  
       2017-07-26 02:45:14 +08:00
    别听他们的,就这么比
    t1 - t2 == 0
    // true

    var t1 = new Date('2017-01-01 23:24');
    var t2 = new Date('2017-01-01 23:23');
    t1 - t2 > 0
    // true
    wanderingwi
        19
    wanderingwi  
       2017-07-26 07:14:15 +08:00
    t1.getTime() == t2.getTime()
    daisyxdx
        20
    daisyxdx  
       2017-07-26 11:46:06 +08:00
    支持 18 楼
    daisyxdx
        21
    daisyxdx  
       2017-07-26 11:48:00 +08:00
    但是格式不对
    ryanzyy
        22
    ryanzyy  
       2017-07-26 13:16:52 +08:00
    moment.js
    yimity
        23
    yimity  
       2017-07-27 13:28:50 +08:00 via Android
    @scriptB0y 一般没人会这么搞吧,都是一个时区来的啊。字符串直接就可以,但是对象不行。毫秒上上之选
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2723 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:57 · PVG 22:57 · LAX 07:57 · JFK 10:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.