zoukankan      html  css  js  c++  java
  • NodeJs获取两个日期间的所有日期

     1 const moment = require( 'moment' );
     2 
     3 const begin_date = '2017-12-12',
     4     end_date = '2018-01-19',
     5     arr = getAllDays( begin_date, end_date );
     6 
     7 console.log( 'arr: ', arr );
     8 
     9 function getAllDays( begin_date, end_date ) {
    10     const errArr = [],
    11         resultArr = [],
    12         dateReg = /^[2]d{3}-[01]d-[0123]d$/;
    13 
    14     if ( typeof begin_date !== 'string' || begin_date === '' || !dateReg.test( begin_date ) ) {
    15         return errArr;
    16     }
    17 
    18     if ( typeof end_date !== 'string' || end_date === '' || !dateReg.test( end_date ) ) {
    19         return errArr;
    20     }
    21 
    22     try {
    23         const beginTimestamp = Date.parse( new Date( begin_date ) ),
    24             endTimestamp = Date.parse( new Date( end_date ) );
    25 
    26         // 开始日期小于结束日期
    27         if ( beginTimestamp > endTimestamp ) {
    28             return errArr;
    29         }
    30 
    31         // 开始日期等于结束日期
    32         if ( beginTimestamp === endTimestamp ) {
    33             resultArr.push( begin_date );
    34             return resultArr;
    35         }
    36 
    37         let tempTimestamp = beginTimestamp,
    38             tempDate = begin_date;
    39 
    40 
    41         // 新增日期是否和结束日期相等, 相等跳出循环
    42         while ( tempTimestamp !== endTimestamp ) {
    43             resultArr.push( tempDate );
    44 
    45             // 增加一天
    46             tempDate = moment( tempTimestamp )
    47                 .add( 1, 'd' )
    48                 .format( 'YYYY-MM-DD' );
    49 
    50             // 将增加时间变为时间戳
    51             tempTimestamp = Date.parse( new Date( tempDate ) );
    52         }
    53 
    54         // 将最后一天放入数组
    55         resultArr.push( end_date );
    56         return resultArr;
    57 
    58     } catch ( err ) {
    59         return errArr;
    60     }
    61 }
  • 相关阅读:
    NetBeans IDE 6.8 发布候选版 1 已经可用!
    怎样的提问才是有效的提问
    Drop 简介
    NetBeans 时事通讯(刊号 # 83 Dec 03, 2009)
    体悟
    《程序员》杂志第8期笔记
    svmlight
    9158.com amazing
    别人玩女人,屌丝玩手机,我没得玩了orz
    光看菜谱成不了好厨师
  • 原文地址:https://www.cnblogs.com/maduar/p/8060472.html
Copyright © 2011-2022 走看看