js获取一段时间内的间隔日期

更新日期: 2019-11-06 阅读: 4.7k 标签: 日期

需求:

前端js,已知开始时间a、结束时间b和间隔天数c,要求取在a-b这两个时间范围内、间隔c天的所有日期。


代码

// startDate: 计划开始时间; endDate:计划结束时间;dayLength:每隔几天,0-代表每天,1-代表日期间隔一天
function getDateStr(startDate, endDate, dayLength) {
	var str = startDate;
	for (var i = 0 ;; i++) {
		var getDate = getTargetDate(startDate, dayLength);
		startDate = getDate;
		if (getDate <= endDate) {
			str += ','+getDate;
		} else {
			break;
		}
	}
	console.log(str);
}

// startDate: 开始时间;dayLength:每隔几天,0-代表获取每天,1-代表日期间隔一天
function getTargetDate(date,dayLength) {
	dayLength = dayLength + 1;
    var tempDate = new Date(date);
    tempDate.setDate(tempDate.getDate() + dayLength);
    var year = tempDate.getFullYear();
    var month = tempDate.getMonth() + 1 < 10 ? "0" + (tempDate.getMonth() + 1) : tempDate.getMonth() + 1;
    var day = tempDate.getDate() < 10 ? "0" + tempDate.getDate() : tempDate.getDate();
    return year + "-" + month + "-" + day;
}


方法调用

getDateStr('2019-07-01', '2019-07-10', 0);


其它方式

function getDuration(type,start,stop){
    var $array = new Array();
    var current = new Date(start);
    stop  = new Date(stop);
    while (current <= stop) {
        $array.push( new Date (current) );
        if(type == 'hour'){//小时
             current.setHours(current.getHours() + 1);
        }else if(type == 'day'){//天
            current.setDate(current.getDate() + 1);
        }else if(type == 'week'){//周
            current.setDate(current.getDate() + 7);
        }else if(type == 'month'){//月
            current.setMonth(current.getMonth() + 1);
        }else{//默认天
            current.setDate(current.getDate() + 1);
        }
    }
    return $array;
}

console.log(getDuration('day','2019-10-05 10:23:16','2019-11-05 18:23:16'));



本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/6286

相关推荐

JS获取当前月的最后一天

为了更好的讲这节的内容,提示一个 JS 处理日期的小技巧,想获取上个月最后一天,只需要设置SetDate参数为0即可。使用 JS 获取当前月的最后一天,咱们通常的思路先获取下个月的第一天

javascript怎么根据日期判断星期几?

javascript根据日期判断星期几主要用到的方法是:getDay() ,可返回表示星期的某一天的数字。然后根据此数字就可以输出星期几。

moment、dayjs、date-fns时间日期库比较

moment、dayjs、date-fns三个库都能满足常见的需求,但是存在如下特点:moment 的功能强大但是体积也最大,moment.min.js 的体积为51K,dayjs.min.js 体积为7K,date-fns由于是模块化加载,体积可以最小化;

javascript如何计算两个日期的时间差?

JavaScript可以使用getTime()方法返回两个日期的格林威治时间数值,将此数值相减即可的到两个日期之间的毫秒数,通过两个时间差的毫秒数即可得到相差的时间。

ElementUI日期选择器时间选择范围限制

ElementUI是饿了么推出的一套基于vue2.x的一个ui框架。官方文档也很详细,这里做一个element-ui日期插件的补充。官方文档中使用picker-options属性来限制可选择的日期,这里举例子稍做补充。

vue 循环取值日期格式化,字符串截取处理

用vue取值页面遍历时,每次都搜索js日期格式化和字符串长度截取,这次记录下来,以后从这里直接拿即可。html代码如下

Js如何获取某一天所在的星期?

我们这里来获取今天所在星期的始末日期,我们可以通过(new Date).getDay()来获取今天是星期几,然后再通过这个减去或者加上一定的天数,就是这个星期的开始日期和结束日期。

解决javaScript在不同时区new Date()显示值不同问题

在日期格式化时遇到的问题,日期格式化方法在最下面。如果在中国时区 formatDate(‘2019-07-09‘) 结果是 ‘2019-07-09’,如果 在夏威夷时区 utc-10:00 或者别的时区 formatDate(‘2019-07-09‘) 结果是 ‘2019-07-08’

前端的各种日期操作

虽然现在处理日期方面已经有了很成熟的也很好用的库,例如(momentjs和date-fns),但是在实际开发中,我们有时候可能并不需要整个库。所以我就在下面整理了在前端开发时对日期时间的各种操作,也算是比较全的了

JS计算两个日期之间的天数

利用毫秒差,由于1秒等于1000毫秒,60秒等于1分钟,60分钟一小时,一天24小时。所以毫秒差除以(60×60×1000×24)等于天数。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!