效果展示:
方案一:
/**
* 日期左右切换
*/
getCurrentDate: function (_num) {
const time = new Date();
let args = {
y: time.getFullYear(),
M: time.getMonth() + 1,
d: time.getDate() + _num,
h: time.getHours(),
m: time.getMinutes(),
s: '00'
};
/**
* 如果后一天大于此月最后一天
* 月+1;日=1
* 年+1;月=1,日=1
*/
if (args.d > new Date(args.y, (args.M + 1), 0).getDate()) {
args.M += 1
args.d = 0o1
}
if (args.M > 12) {
args.y += 1
args.M = 1
args.d = 0o1
}
/**
* 如果前一天
* 月-1;日=前一个月总天数。判断点击“前一天”count数
* 年-1;月=1,日=1
*/
if (args.d <= 0) {
args.M -= 1
args.d = new Date(args.y, (args.M), 0).getDate()
if (mainYumingWeather.count < -1) {
return args.y + '-' + args.M + '-' + (args.d + mainYumingWeather.count + 1)
}
}
console.log('日期>>>',args.y + '-' + args.M + '-' + args.d);
return args.y + '-' + args.M + '-' + args.d;
},
方案二:
/**
* 获取当前时间向前后多少天的日期选择
*/
getDateHtml: function (start, end, nowDay, itemClass) {
let zhou = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
let content = [];
for (var i = start; i < end; i++) {
let time = new Date()
time.setDate(time.getDate() + i);
let args = {
y: time.getFullYear(),
M: time.getMonth() + 1,
d: time.getDate()
};
if (args.M < 10) {
args.M = "0" + args.M
}
if (args.d < 10) {
args.d = "0" + args.d
}
let riqi = args.y + "-" + args.M + "-" + args.d;
let jinri = riqi == nowDay;
content.push(`
<li class="${itemClass} ${jinri?'deate-active':''}" data-date='${riqi}'>
<p>${args.M+"-"+args.d}</p>
<p>${jinri ?"今日":zhou[time.getDay()]}</p>
</li>
`)
}
return content
},
核心代码:
理论知识:
new Date()的set方法