微信小程序前一天后一天、前一月后一月、前一年后一年,加点击picker选择指定日期开始切换前后
<view class="box">
<view bindtap='btncud' class='box1'>前一天</view>
<view class='box2'>
<picker class='deta' mode="date" value="{{date}}" bindchange="bindDateChange">
<view style="text-align: center;">{{date}}</view>
</picker>
</view>
<view bindtap='btnadd' class='box1'>后一天</view>
</view>
<view class="box" style="margin-top: 50px;">
<view bindtap='btncud2' class='box1'>前一月</view>
<view class='box2'>
<picker class='deta' mode="date" fields="month" value="{{dateyue}}" bindchange="bindDateChange2">
<view style="text-align: center;">{{dateyue}}</view>
</picker>
</view>
<view bindtap='btnadd2' class='box1'>后一月</view>
</view>
<view class="box" style="margin-top: 50px;">
<view bindtap='btncud3' class='box1'>前一年</view>
<view class='box2'>
<picker class='deta' mode="date" fields="year" value="{{datenian}}" bindchange="bindDateChange3">
<view style="text-align: center;">{{datenian}}</view>
</picker>
</view>
<view bindtap='btnadd3' class='box1'>后一年</view>
</view>
JS代码
data:{
date: "",//日的时间默认
dateyue: "",//月的时间默认
datenian: "",//年的时间默认
}
日月年点击事件
// 日
bindDateChange: function (e) {
this.setData({
date: e.detail.value
})
},
// 月
bindDateChange2: function (e) {
this.setData({
dateyue: e.detail.value
})
},
// 年
bindDateChange3: function (e) {
this.setData({
datenian: e.detail.value
})
},
前一天后一天点击事件
// 前一天
btncud: function () {
let Arr = this.data.date.split("-");
let now = new Date(Number(Arr['0']), (Number(Arr['1']) - 1), Number(Arr['2']))
now.setDate(now.getDate() - 1)
now = this.formatTime(now)
this.setData({
date: now
})
},
// 后一天
btnadd: function () {
let Arr = this.data.date.split("-");
let now = new Date(Number(Arr['0']), (Number(Arr['1']) - 1), Number(Arr['2']))
now.setDate(now.getDate() + 1)
now = this.formatTime(now)
this.setData({
date: now
})
},
前一月后一月点击事件
// 前一月
btncud2: function () {
let Arr2 = this.data.dateyue.split("-");
let now2 = new Date(Number(Arr2['0']), (Number(Arr2['1']) - 1))
now2.setDate(now2.getDate() - 1)
now2 = this.formatTime2(now2)
this.setData({
dateyue: now2
})
},
// 后一月
btnadd2: function () {
let Arr2 = this.data.dateyue.split("-");
let now2 = new Date(Number(Arr2['0']), (Number(Arr2['1'])))
now2.setDate(now2.getDate() + 1)
now2 = this.formatTime2(now2)
this.setData({
dateyue: now2
})
},
前一年后一年点击事件
// 前一年
btncud3: function () {
let now3 = this.data.datenian - 1
this.setData({
datenian: now3
})
},
// 后一年
btnadd3: function () {
let now3 = Number(this.data.datenian) + Number(1)
this.setData({
datenian: now3
})
},
日月年时间格式化
// 格式化日时间
formatTime(date) {
var year = date.getFullYear();
var month = date.getMonth() + 1
month = month > 10 ? month : '0' + month;
var day = date.getDate()
day = day > 9 ? day : '0' + day;
return year + '-' + month + '-' + day;
},
// 格式化月时间
formatTime2(dateyue) {
var year = dateyue.getFullYear();
var month = dateyue.getMonth() + 1
month = month > 9 ? month : '0' + month;
return year + '-' + month ;
},
// 格式化年时间
formatTime3(datenian) {
var year = datenian.getFullYear();
return year;
},
在挂载的生命周期里运行回调时间函数
onReady: function () {
let now = new Date();
let nowdate = this.formatTime(now);
this.setData({
date: nowdate
})
let now2 = new Date();
let nowdate2 = this.formatTime2(now2);
this.setData({
dateyue: nowdate2
})
let now3 = new Date();
let nowdate3 = this.formatTime3(now3);
this.setData({
datenian: nowdate3
})
},
样式随便写个主要是功能实现
.box{
display: flex;
width: 100%;
}
.box1{
width: 45%;
}
.box2{
width: 55%;
}
效果图
找了不少例子但是总是不全最后自己汇总整合了一下,希望能帮到有需要的你