【问题标题】:Javascript programmatic way to get time in 30 min interval between two date objectsJavascript编程方式获取两个日期对象之间30分钟间隔的时间
【发布时间】:2021-08-18 16:04:34
【问题描述】:

抱歉,如果问题措辞不当,我正在寻找的是这样的;假设你有两个日期(但你真正关心的是日期对象的时间部分,而不是日期),上午 8 点和下午 5 点,我希望能够在两个日期之间每 30 分钟打印一次时间(即上午 8:00、上午 8:30、上午 9:00、上午 9:30...下午 4:30、下午 5)。感谢您的回复。

【问题讨论】:

标签: javascript vue.js time


【解决方案1】:

您可以将开始日期和结束日期存储在Date object 中,然后在start 日期小于end 日期时,使用while 循环在start 上连续增加30 分钟。

const start = new Date();
start.setHours(8, 0, 0); //8 AM
const end = new Date();
end.setHours(17, 0, 0); //5 PM

while (start <= end) {
  console.log(start.toLocaleString('en-US', {hour: '2-digit', minute: '2-digit'}));
  start.setMinutes(start.getMinutes() + 30);
}

【讨论】:

    【解决方案2】:

    如果您想在某个时间范围内每 30 分钟执行某种操作或运行一项功能(例如注销时间),您可以使用所谓的cron 格式与可以提取 cron 值并按预定义的时间表运行函数的模块。

    我建议使用node-cron 模块。

    要在上午 8 点到下午 5 点之间每 30 分钟运行一次任务,在这种情况下打印出当前时间,您可以使用 cron 格式创建计划。

    上午 8 点到下午 5 点之间每 30 分钟的 cron 格式看起来像 */30 08-17 * * *

    const cron = require('node-cron');
    
    cron.schedule('*/30 08-17 * * *', () => {
      console.log(new Date().toLocaleTimeString());
    });
    

    【讨论】:

      猜你喜欢
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      • 1970-01-01
      • 2014-01-17
      • 2010-12-03
      相关资源
      最近更新 更多