锦水志愿者去哪小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
4.4 KiB

"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,
});
}
}
});