Component({ /** * 组件的属性列表 */ properties: { }, /** * 组件的初始数据 */ data: { test: [ [], [], [], [], [], ], selectvalue: [1, 2, 3, 4, 5], date: '', time:'01-01' }, /** * 组件的方法列表 */ methods: { formatNumber(n){ n = n.toString() return n[1] ? n : '0' + n }, formatDate(date){ const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() return [year, month, day].map(this.formatNumber).map(this.formatNumber).join('-') }, // 可以封装为获取某年某月的天数 mGetDate(year, month) { let d = new Date(year, month, 0); return d.getDate(); }, //多列滚动选择器滚动时触发事件 bindcolumnchange(e) { let column = e.detail.column let temp = this.data.selectvalue switch (column) { case 0: temp[0] = e.detail.value this.setData({ selectvalue: temp }, () => { let day = this.mGetDate(this.data.selectvalue[0], this.data.selectvalue[1]) let days = [] for (let i = 1; i <= day; i++) { days.push(i + '日') } let temp_1 = this.data.test temp_1[2] = days this.setData({ test: temp_1 }) }) break; case 1: temp[1] = e.detail.value this.setData({ selectvalue: temp }, () => { let day = this.mGetDate((this.data.selectvalue[0] + 1), (this.data.selectvalue[1] + 1)) let days = [] for (let i = 1; i <= day; i++) { days.push(i + '日') } let temp_1 = this.data.test temp_1[2] = days this.setData({ test: temp_1 }) }) break; case 2: temp[2] = e.detail.value this.setData({ selectvalue: temp }) break; case 3: temp[3] = e.detail.value this.setData({ selectvalue: temp }) break; case 4: temp[4] = e.detail.value this.setData({ selectvalue: temp }) break; } // console.log("第" + e.detail.column + "列", "第" + e.detail.value + "个") }, // 确定选择日期 bindchange() { let temp = this.data.selectvalue let year = (this.data.test[0][temp[0]]).substr(0, (this.data.test[0][temp[0]]).length - 1) year = this.addzero(year) let month = (this.data.test[1][temp[1]]).substr(0, (this.data.test[1][temp[1]]).length - 1) month = this.addzero(month) let day = this.data.test[2][temp[2]].substr(0, (this.data.test[2][temp[2]]).length - 1) day = this.addzero(day) let hour = this.data.test[3][temp[3]].substr(0, (this.data.test[3][temp[3]]).length - 1) hour = this.addzero(hour) let minute = this.data.test[4][temp[4]].substr(0, (this.data.test[4][temp[4]]).length - 1) minute = this.addzero(minute) this.setData({ date: year + "-" + month + "-" + day, time: hour + ":" + minute, all: year + "-" + month + "-" + day + '' + hour + ":" + minute, }, _ => { this.triggerEvent("pConfirm", { date: year + "-" + month + "-" + day, time: hour + ":" + minute, all: year + "-" + month + "-" + day + '' + hour + ":" + minute, }) }) }, //+0 addzero(str){ if(str.length==1){ return "0"+str }else { return str } }, }, ready() { // 获取当前日期(年,月,日) let DATE = (this.formatDate(new Date())).split('-') let year = parseInt(DATE[0]) let month = parseInt(DATE[1]) let day_1 = parseInt(DATE[2]) this.setData({ selectvalue: [0, month - 1, day_1 - 1, 0, 0], date: year + "-" + month + "-" + day_1 }) let years = [] let months = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"] let days = [] let hours = [] let minutes = [] //判断当前月份天数 let day = this.mGetDate(year, month) for (let i = 1; i <= day; i++) { days.push(i + '日') } for (let i = 0; i < 30; i++) { years.push(year + i + '年') } for (let i = 1; i < 25; i++) { hours.push(i + "点") } for (let i = 0; i < 61; i++) { minutes.push(i + "分") } this.setData({ test: [years, months, days, hours, minutes] }) } })