我想用js生成一个日期数组,长度为一周(7),我应该怎么判断月初月末的情况,比如8.30 8.31 9.1 9.2 9.3 9.4 9.5这样的跨月份的情况以及大小月份的判断?或者有什么第三方组件能实现这个?
我想用js生成一个日期数组,长度为一周(7),我应该怎么判断月初月末的情况,比如8.30 8.31 9.1 9.2 9.3 9.4 9.5这样的跨月份的情况以及大小月份的判断?或者有什么第三方组件能实现这个?
网上的一个日期格式化的扩展
Date.prototype.format = function(format) {
if (!format) {
format = this.fullPattern || "yyyy-MM-dd HH:mm:ss";
}
var o = {
"M+": this.getMonth() + 1, // month
"d+": this.getDate(), // day
"H+": this.getHours(), // hour (24)
"h+": this.getHours() % 12, // hour (12)
"m+": this.getMinutes(), // minute
"s+": this.getSeconds(), // second
"q+": Math.floor((this.getMonth() + 3) / 3), // quarter
"S": this.getMilliseconds()
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "")
.substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
};
有了这个之后,可以用当天的日期来生成一个数组
var d = new Date();
var r = Array.apply(null, new Array(7))
.map((v, i) => {
d.setDate(d.getDate() + i);
return d.format("MMdd");
});
console.log(r);
结果
[ '0908', '0909', '0911', '0914', '0918', '0923', '0929' ]
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.8k 阅读✓ 已解决
5 回答3.5k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.8k 阅读
5 回答7.1k 阅读✓ 已解决