【问题标题】:How to convert general time to cronjob time using nodejs?如何使用节点 js 将一般日期转换为 cron 作业时间?
【发布时间】:2021-05-30 18:00:42
【问题描述】:

cronjob 时间语法,例如 "* * * * * *" 后跟 cron npm

我想将时间从 "2017-05-09T01:30:00.123Z" 转换为 cron 作业时间格式。有库或方法可以实现吗?

【问题讨论】:

    标签: node.js cron


    【解决方案1】:

    我不知道是否有任何图书馆。但是您可以使用简单的日期函数来简单地实现它。

    var date=new Date("2017-05-09T01:30:00.123Z");
    
    var mins=date.getMinutes();
    //mins variable for the 1st * and so on 
    var secs=date.getSeconds();
    
    var dayofmonth=date.getDate();
    
    var month=date.getMonth();
    
    var dayofweek=date.getDay();
    

    然后您可以构建一个字符串并在 cron 模块中使用这些值。

    【讨论】:

      【解决方案2】:
      const dateToCron = (date) => {
          const minutes = date.getMinutes();
          const hours = date.getHours();
          const days = date.getDate();
          const months = date.getMonth() + 1;
          const dayOfWeek = date.getDay();
      
          return `${minutes} ${hours} ${days} ${months} ${dayOfWeek}`;
      };
      
      const dateText = '2017-05-09T01:30:00.123Z';
      const date = new Date(dateText);
      
      const cron = dateToCron(date);
      console.log(cron); //30 5 9 5 2
      

      仅供参考,您提到 "* * * * * *"cron 的语法/格式,这是不正确的。正确的格式由 5 个用空格分隔的值(而不是 6 个值)组成。

      【讨论】:

      • 虽然CRON的语法/格式通常是5个值(有空格分隔),但也可以是6个或7个值see this link...里面有提到您之前引用的cron Wikipedia 文章,我也看到了在现实世界中部署的示例。
      猜你喜欢
      • 1970-01-01
      • 2019-06-15
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2019-01-27
      相关资源
      最近更新 更多