1. 程式人生 > >解決easyui datebox無法formatter

解決easyui datebox無法formatter

做計劃,計劃分為年度計劃和月度計劃,根據計劃的型別來選擇日期的顯示格式。如果選擇年度計劃,則日期框只顯示年份,如果選擇月度計劃,則日期框顯示年份和月份。除了要設定formatter外還需要設定parser。程式碼如下,參考內容http://www.longziyong.cn/post/dnzs/2017/04/778.html

$('#startTimeSelect').datebox({
        label: "計劃開始時間",
        labelPosition: 'before',
        labelAlign: 'right',
        width: 200,
        formatter: function (date) {
            var y = date.getFullYear();
            var m = date.getMonth() + 1;
            var d = date.getDate();
            var planType = $('#planTypeSelect').combobox('getValue');
            if (planType == 0) {
                return y;
            } else if (planType == 1) {
                return y + '-' + m;
            } else if (planType == 2) {
                $('#endTimeSelect').datebox('setValue', y + 5);
                return y;
            }
            return y + '-' + m + '-' + d;
        },
        parser: function (s) {
            if (s){
                s = s.toString();
                console.info(s);
                var yStr = s.substr(0, 4);
                var mStr = s.substr(5);


                var y = parseInt(yStr, 10);
                var m = parseInt(mStr, 10);
                if (!isNaN(y) && !isNaN(m)) {
                    return new Date(y, m - 1, 1);
                } else {
                    return new Date(y,1,1);
                }
            }
        }
    });