JS获取两个日期间的所有日期

本文介绍了一个JavaScript函数,用于计算两个日期之间的所有日期,并输出每个日期的时间戳。通过递增一天的方式,直到达到指定的结束日期。
var stime = '2018-07-25'; //开始日期
var etime = '2018-08-02'; //结束日期
 
getdiffdate(stime,etime);
 
//获取两日期之间日期列表函数
function getdiffdate(stime,etime){
    //初始化日期列表,数组
    var diffdate = new Array();
    var i=0;
    //开始日期小于等于结束日期,并循环
    while(stime<=etime){
        diffdate[i] = stime;
        
        //获取开始日期时间戳
        var stime_ts = new Date(stime).getTime();
        console.log('当前日期:'+stime   +'当前时间戳:'+stime_ts);
        
        //增加一天时间戳后的日期
        var next_date = stime_ts + (24*60*60*1000);
        
        //拼接年月日,这里的月份会返回(0-11),所以要+1
        var next_dates_y = new Date(next_date).getFullYear()+'-';
        var next_dates_m = (new Date(next_date).getMonth()+1 < 10)?'0'+(new Date(next_date).getMonth()+1)+'-':(new Date(next_date).getMonth()+1)+'-';
        var next_dates_d = (new Date(next_date).getDate() < 10)?'0'+new Date(next_date).getDate():new Date(next_date).getDate();
 
        stime = next_dates_y+next_dates_m+next_dates_d;
        
        //增加数组key
        i++;
    }
    console.log(diffdate);
}
JavaScript中,可以通过计算两个日期之间的月份数量来获取结果。以下是实现这一功能的代码示例,假设输入为两个有效日期字符串(格式如`YYYY-MM-DD`),输出为这两个日期之间的月份数量(包括起始和结束月份): ```javascript function getMonthDifference(startDateStr, endDateStr) { const startDate = new Date(startDateStr); const endDate = new Date(endDateStr); // 确保startDate是较早的日期 if (startDate > endDate) { [startDate, endDate] = [endDate, startDate]; // 交换日期 } const startYear = startDate.getFullYear(); const startMonth = startDate.getMonth(); // 月份从0开始(0=1月) const endYear = endDate.getFullYear(); const endMonth = endDate.getMonth(); // 计算月份差 const monthDiff = (endYear - startYear) * 12 + (endMonth - startMonth) + 1; // +1包括起始月份 return monthDiff; } // 示例用法 const start = '2023-01-15'; const end = '2023-05-10'; console.log(getMonthDifference(start, end)); // 输出: 5 ``` ### 代码说明: 1. **输入处理**:将输入的日期字符串转换为`Date`对象,并确保`startDate`是较早的日期。 2. **提取年月**:分别获取起始日期和结束日期的年份和月份。 3. **计算月份差**: - `(endYear - startYear) * 12`:计算年份差转换为月份。 - `(endMonth - startMonth)`:计算月份差。 - `+1`:包括起始月份(如果需要不包括起始月份,可以去掉`+1`)。 4. **返回结果**:返回计算得到的月份数量。 ### 注意事项: - 如果结束日期是起始日期之前,代码会交换日期以确保计算正确。 - 如果需要不包括起始月份,可以将`+1`去掉。 ### 示例扩展: - 如果输入是`'2023-01-15'`和`'2023-01-20'`,输出为`1`(包括起始月份)。 - 如果输入是`'2023-01-15'`和`'2024-01-15'`,输出为`13`(包括起始和结束月份)。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值