V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Astrian
V2EX  ›  问与答

如何使用 Javascript 比较两个格式化时间戳的先后?如何计算与当前时间的差值?

  •  
  •   Astrian · 2015-01-08 22:02:06 +08:00 · 4151 次点击
    这是一个创建于 3599 天前的主题,其中的信息可能已经有所发展或是发生改变。

    正在写一个 RSS 阅读器,在 Chrome 上跑的一个应用

    现在遇到的问题:

    • 不同的 RSS 源输出的时间戳格式不同,有可能是 Mon, 29 Dec 2014 08:36:16 +0000,也有可能是 2014-12-29 08:36:16,甚至还有其他的格式
    • 如何统一化读取时间戳?
    • 如何比较时间戳的先后?
    • 如何计算与当前时间的差值,并显示类似「X 小时前」的提示?
    4 条回复    2015-01-08 23:00:08 +08:00
    ETiV
        1
    ETiV  
       2015-01-08 22:07:26 +08:00 via iPhone
    库:momentjs
    Astrian
        2
    Astrian  
    OP
       2015-01-08 22:26:44 +08:00 via Android
    @ETiV 貌似只能输出不能解析?
    ETiV
        3
    ETiV  
       2015-01-08 22:44:48 +08:00 via iPhone
    moment("2014-12-29 08:36:16")

    不过像你说的多格式的,貌似要分别处理。

    文档里有提到 moment(string, [format1, format2]),也是靠猜的
    zhujinliang
        4
    zhujinliang  
       2015-01-08 23:00:08 +08:00
    1. new Date('Mon, 29 Dec 2014 08:36:16 +0000'), new Date('2014-12-29 08:36:16')等,js可识别一些常见的写法,得到的是js的Date类型,之后步骤会用到
    2. getTime()方法取得Unix时间戳再比较
    3. Unix时间戳相减就是相差毫秒数, 除以1000就是秒数,除以3600*1000就是小时数,类推
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2907 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 08:02 · PVG 16:02 · LAX 00:02 · JFK 03:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.