"use strict"; var date = new Date(); var years = []; var months = []; var days = []; var hours = []; var minutes = []; for (var i = date.getFullYear(); i < (date.getFullYear() + 2); i++) { years.push(i + "年"); } // for (var i = date.getFullYear(); i > (date.getFullYear() - 3); i--) { // years.push(i + "年"); // } for (var i = 1; i <= 12; i++) { months.push(i + "月"); } for (var i = 1; i <= 31; i++) { days.push(i + "日"); } for (var i = 0; i <= 23; i++) { hours.push(i + ""); } for (var i = 0; i <= 59; i++) { minutes.push(i + ""); } var mGetDate = function (year, month) { var d = new Date(year, month, 0); return d.getDate(); }; var getDate = function (year, month, day, hour, minute) { var newyear = year.substr(0, year.length - 1); var setmonth = month.substr(0, month.length - 1); var newmonth = setmonth < 10 ? '0' + setmonth : setmonth; var setday = day.substr(0, day.length - 1); var newday = setday < 10 ? '0' + setday : setday; var newhour = hour < 10 ? '0' + hour : hour; var newminute = minute < 10 ? '0' + minute : minute; return newyear + '-' + newmonth + '-' + newday + ' ' + newhour + ":" + newminute + ":00"; }; var getInitDate = function (initTime) { var t = initTime.split(' '); var date = t[0].split('-'); var time = t[1].split(':'); var y = 0; var m = 0; var d = 0; var h = 0; var M = 0; years.forEach(function (item, index) { if (item == (date[0] + '年')) { y = index; } }); months.forEach(function (item, index) { if (item == (parseInt(date[1]) + '月')) { m = index; } }); days.forEach(function (item, index) { if (item == (parseInt(date[2]) + '日')) { d = index; } }); hours.forEach(function (item, index) { if (item == parseInt(time[0])) { h = index; } }); minutes.forEach(function (item, index) { if (item == parseInt(time[1])) { M = index; } }); return [y, m, d, h, M]; }; Component({ properties: { initTime: { type: String, observer: function (newTime) { this.data.timevalue = getInitDate(newTime); this.setData({ timevalue: this.data.timevalue }); } } }, observers: {}, data: { timevalue: [], years: years, months: months, days: days, hours: hours, minutes: minutes, year: '', month: '', day: '', hour: '', minute: '' }, lifetimes: { attached: function () { var year = this.data.years[this.data.timevalue[0]||0]; var month = this.data.months[this.data.timevalue[1]||0]; var day = this.data.days[this.data.timevalue[2]||0]; var hour = this.data.hours[this.data.timevalue[3]||0]; var minute = this.data.minutes[this.data.timevalue[4]||0]; this.setData({ year: year, month: month, day: day, hour: hour, minute: minute, }); }, detached: function () { }, }, methods: { cancel: function () { this.triggerEvent("cancel"); }, confirm: function () { var _a = this.data, year = _a.year, month = _a.month, day = _a.day, hour = _a.hour, minute = _a.minute; var time = getDate(year, month, day, hour, minute); this.triggerEvent("confirm", { time: time }); }, fnbindChange: function (e) { var val = e.detail.value; var year = this.data.years[val[0]]; var month = this.data.months[val[1]]; var day = this.data.days[val[2]]; var hour = this.data.hours[val[3]]; var minute = this.data.minutes[val[4]]; var days = []; var daynum = mGetDate(year.substr(0, year.length - 1), month.substr(0, month.length - 1)); for (var i = 1; i <= daynum; i++) { days.push(i + "日"); } this.setData({ days: days, year: year, month: month, day: day, hour: hour, minute: minute, }); } } });