生成移动端日期列表

70 阅读1分钟
const getDate = function() {
    const minD = new Date('1900-01-01')
    const maxD = new Date()
    let date = []
    for (let s = minD.getFullYear(),l = maxD.getFullYear(); s <= l; s++) {
        let obj = {}
        obj['id'] = obj['value'] = s + ''
        obj.childs = [];
        for (var m = 1; m <= 12; m++) {
            var o = {};
            o['id'] = o['value'] = ("0" + m).slice(-2);
            o.childs = [];
            var days = new Date(s, m, 0).getDate();
            for (var d = 1; d <= days; d++) {
                var j = {};
                j['id'] = j['value'] = ("0" + d).slice(-2);
                if (!(m == maxD.getMonth() + 1 && s == maxD.getFullYear() && d > maxD.getDate())) {
                    o.childs.push(j);
                }
            }
            if (!(m > maxD.getMonth() + 1 && s == maxD.getFullYear())) {
                obj.childs.push(o);
            }
        }
        date.push(obj)
    }
    return date
};
```