• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hpze2000
V2EX  ›  程序员

JS 如何遍历 两个时间点 之间的 所有时间点。

  •  
  •   hpze2000 · Sep 26, 2013 · 10974 views
    This topic created in 4788 days ago, the information mentioned may be changed or developed.
    比如 :
    date1 = 2013-01-01 09:00
    date2 = 2013-01-03 09:00


    然后想得到的结果 是这样的

    2013-01-01 09:00
    2013-01-01 10:00
    2013-01-01 11:00
    2013-01-01 12:00
    2013-01-01 13:00
    .
    .
    .
    .
    2013-01-03 08:00
    2013-01-03 09:00

    这样的结果?
    11 replies  •  2019-09-03 01:45:25 +08:00
    hsinglin
    hsinglin
    Sep 26, 2013
    1
    看看moment.js,应该有便捷的方法。
    hpze2000
    hpze2000
    OP
    Sep 26, 2013
    2
    @hsinglin 最好是原生的JS
    solu
    solu
    Sep 26, 2013
    3
    格式化成时间戳然后循环对比,每次累加指定step得到结果再格式化回来就可以了
    subpo
    subpo
    Sep 26, 2013
    4
    自己for构建
    xiaoxianyu
    xiaoxianyu
    Sep 26, 2013❤️1
    5
    xiaoxianyu
    xiaoxianyu
    Sep 26, 2013
    6
    额...怎么溢出了....
    switch
    switch
    Sep 26, 2013❤️1
    7
    比较简单的:

    var date1 = "2013-01-01 09:00";
    var date2 = "2013-01-03 12:00";
    var d1 = new Date(date1.replace(/[- ]/g, ","));
    var d2 = new Date(date2.replace(/[- ]/g, ","));
    var d = d1;
    while (d <= d2) {
    console.log([d.getFullYear(), ("0" + (d.getMonth() + 1)).slice(-2), ("0" + d.getDate()).slice(-2)].join("-") + " " + [("0" + d.getHours()).slice(-2), ("0" + d.getMinutes()).slice(-2)].join(":"));
    d.setHours(d.getHours() + 1);
    }
    mkeith
    mkeith
    Sep 26, 2013
    8
    转换成时间戳格式,然后再for循环加24*60*60
    est
    est
    Sep 26, 2013❤️4
    9
    for(var i=Date.parse('2013-01-01 09:00');i<Date.parse('2013-01-03 09:00');i+=3600000)console.info(new Date(i))


    一句话就搞定咯。
    hpze2000
    hpze2000
    OP
    Sep 27, 2013
    10
    @est
    这个 好, 非常感谢。
    ideacco
    ideacco
    Sep 3, 2019
    11
    @est 特意上来赞一下,这操作真骚
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1556 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 17:39 · PVG 01:39 · LAX 09:39 · JFK 12:39
    ♥ Do have faith in what you're doing.