laydate基于原生javascript编写的日期插件,这是laydate的官网http://sentsin.com/layui/laydate。
真的很感谢作者将这么易用美观的组件开源。前端时间开发系统是,总是要求给页面的时间输入框设置初始值。之前一遇到类似场景一直老老实实的使用new date生成时间格式化成时间后设置到input中,例如:
var now = new Date();
var startTime = $.formatDate("yyyy-MM-dd", now.getTime());
$("#endTime").val(startTime);
但是后来忍不下去 用了laydate还要每次设置初始值,在这过程中也问过作者,laydate不支持这样的设置,于是只好研读作者的源代码,废了点心思终于明白了基本的意思,于是找到组件入口的地方,修改入口代码即可支持了,当然这种需要将laydata的初始化方前面执行,否则也是不行的。laydate开发版源码找到laydate入口修改为如下即可。
//主接口
win.laydate = function(options){
options = options || {};
try{
as.event = win.event ? win.event : laydate.caller.arguments[0];
} catch(e){};
Dates.run(options);
//设置初始化时间,在初始化是增加initDate配置项
if(options.initDate){
var de = options.initDate;
var strDt = Dates.parse([de.getFullYear(), de.getMonth()+1,
de.getDate()],[de.getHours(), de.getMinutes(), de.getSeconds()],
options.format);
Dates.query(options.elem).value = strDt;
}
return laydate;
};
usage:
var start = {
elem: '#startTime',
format: 'YYYY-MM-DD',
max: laydate.now(),
istime: false,
istoday: true,
initDate:new Date(),
choose: function (datas) {
}
};