EasyUI Datetimebox 日期时间框 无论选中哪天的日期最后显示的都是当前日期 解决办法
2018-04-09 20:46
639 查看
问题起因: 使用 EasyUI Datetimebox 时重写了 formatter ,
以便获取自己想要的日期格式 , 但是无论选择哪天的日期 点了确定之后 显示的都是当天的日期 , 给日历添加了点击事件之后, 选中日期后弹出的是选中日期, 但是点击了确定之后弹出的却是当前日期
formatter:function(date){// 重写默认日期格式
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();
var hour = date.getHours().toString();
var minute = date.getMinutes().toString();
var second = date.getSeconds().toString();
return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' +second;
}
最后发现选中日期点击确定后, 会先调用 formatter
格式化日期, 之后会将格式化好的日期传递给 parser 进行解析 , 之后才会显示选中的日期
所以想要重写日期格式
正确的做法是 同时重写 formatter 和 parser
formatter:function(date){// 重写默认日期格式
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();
var hour = date.getHours().toString();
var minute = date.getMinutes().toString();
var second = date.getSeconds().toString();
return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' +second;
},
parser: function (date) {
//重写formatter 必须 重写parser, 否则无论选择哪天, 日期均为当天日期
//xxxx-x-x xx:xx:xx
if (!date) return new Date();
var array = date.split(" ");// 分成日期和时间两部分
var arrayDate = array[0].split("-");
var yearStr = arrayDate[0];
var monthStr = arrayDate[1];
var dayStr = arrayDate[2];
var arrayTime = array[1].split(":");
var hour = arrayTime[0];
var minute = arrayTime[1];
var second = arrayTime[2];
var year = parseInt(yearStr,10);
var month = parseInt(monthStr,10);
var day = parseInt(dayStr,10);
if (!isNaN(year) && !isNaN(month) && !isNaN(day) && !isNaN(hour) && !isNaN(minute) && !isNaN(second)){
return new Date(year,month-1,day,hour,minute,second);
} else {
return new Date();
}
}
以便获取自己想要的日期格式 , 但是无论选择哪天的日期 点了确定之后 显示的都是当天的日期 , 给日历添加了点击事件之后, 选中日期后弹出的是选中日期, 但是点击了确定之后弹出的却是当前日期
formatter:function(date){// 重写默认日期格式
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();
var hour = date.getHours().toString();
var minute = date.getMinutes().toString();
var second = date.getSeconds().toString();
return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' +second;
}
最后发现选中日期点击确定后, 会先调用 formatter
格式化日期, 之后会将格式化好的日期传递给 parser 进行解析 , 之后才会显示选中的日期
所以想要重写日期格式
正确的做法是 同时重写 formatter 和 parser
formatter:function(date){// 重写默认日期格式
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();
var hour = date.getHours().toString();
var minute = date.getMinutes().toString();
var second = date.getSeconds().toString();
return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' +second;
},
parser: function (date) {
//重写formatter 必须 重写parser, 否则无论选择哪天, 日期均为当天日期
//xxxx-x-x xx:xx:xx
if (!date) return new Date();
var array = date.split(" ");// 分成日期和时间两部分
var arrayDate = array[0].split("-");
var yearStr = arrayDate[0];
var monthStr = arrayDate[1];
var dayStr = arrayDate[2];
var arrayTime = array[1].split(":");
var hour = arrayTime[0];
var minute = arrayTime[1];
var second = arrayTime[2];
var year = parseInt(yearStr,10);
var month = parseInt(monthStr,10);
var day = parseInt(dayStr,10);
if (!isNaN(year) && !isNaN(month) && !isNaN(day) && !isNaN(hour) && !isNaN(minute) && !isNaN(second)){
return new Date(year,month-1,day,hour,minute,second);
} else {
return new Date();
}
}
相关文章推荐
- easyui 的 datetimebox 显示为当前时间问题解决方法
- EasyUI datetimebox显示当前时间
- easyui-datetimebox默认显示当前时间
- jquery easyui datebox 时间控件默认显示当前日期的实现方法
- XP任务栏只显示时间,星期不显示日期的解决办法
- Android学习笔记:设置日期和时间不能选择当前时刻以前的日期时间的解决办法
- Android:设置日期和时间不能选择当前时刻以前的日期时间的解决办法
- 后台无法获取easyUI的datetimebox的时间,只能获取日期
- 向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法
- Android:设置日期和时间不能选择当前时刻以前的日期时间的解决办法
- easyui--datetimebox插件,下拉框的日期不能全部显示,即一个月份中的天数未全部显示
- jQuery EasyUI API 中文文档 - 日期时间框(DateTimeBox)
- Android:设置日期和时间不能选择当前时刻以前的日期时间的解决办法
- EasyUI datetimebox设置默认值为当前时间
- jQuery EasyUI API 中文文档 DateTimeBox日期时间框
- 表单(中)-EasyUI Combogrid 组合网格、EasyUI Numberbox 数字框、EasyUI Datebox 日期框、EasyUI Datetimebox 日期时间框、EasyUI Calendar 日历
- EasyUI的DataGrid日期列(datebox)正确显示json时间格式
- jQuery EasyUI API 日期时间框(DateTimeBox)
- jQuery EasyUI API 中文文档 - 日期时间框(DateTimeBox)
- PHP date(); 日期和时间格式大全 PHP date("Y-m-d H:i:s"); 获取当前时间 差8小时解决办法