900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 时间与日期插件 -- laydate 使用方法(摘自官网)

时间与日期插件 -- laydate 使用方法(摘自官网)

时间:2021-11-20 22:48:01

相关推荐

时间与日期插件 -- laydate  使用方法(摘自官网)

简单例子:

$(function(){ var start = { elem: '#start', //选择ID为START的input format: 'YYYY/MM/DD hh:mm:ss', //自动生成的时间格式 min: laydate.now(), //设定最小日期为当前日期 max: '2099-06-16 23:59:59', //最大日期 istime: true, //必须填入时间 istoday: false, //是否是当天 start: laydate.now(0,"YYYY/MM/DD hh:mm:ss"), //设置开始时间为当前时间 choose: function(datas){ end.min = datas; //开始日选好后,重置结束日的最小日期 end.start = datas //将结束日的初始值设定为开始日 } };

和 layer 一样,你可以在 layui 中使用 layDate,也可直接使用 layDate 独立版,请按照你的实际需求来选择。

这是一个最简单的示例: 对应的代码如下:

在 layui 模块中使用layui.code

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>layDate快速使用</title> <link rel="stylesheet" href="/static/build/layui.css" media="all"></head><body> <div class="layui-inline"> <!-- 注意:这一层元素并不是必须的 --> <input type="text" class="layui-input" id="test1"></div> <script src="/static/build/layui.js"></script><script>layui.use('laydate', function(){var laydate = layui.laydate; //执行一个laydate实例 laydate.render({elem: '#test1' //指定元素 });});</script></body></html>

作为独立组件使用layui.code

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>使用 layDate 独立版</title></head><body>

<input type="text" id="test1">

<script src="laydate.js"></script><script>//执行一个laydate实例laydate.render({elem: '#test1' //指定元素});</script></body></html>

除了在组件加载方式有一些小小的不同,其它都完全类似

基础参数选项

通过核心方法:laydate.render(options)来设置基础参数,也可以通过方法:laydate.set(options)来设定全局基础参数.

elem - 绑定元素

类型:String/DOM,默认值:无

必填项,用于绑定执行日期渲染的元素,值一般为选择器,或DOM对象

codelayui.code

laydate.render({ elem: '#test' //或 elem: document.getElementById('test')、elem: lay('#test') 等}); type - 控件选择类型

类型:String,默认值:date

用于单独提供不同的选择器类型,可选值如下表:

codelayui.code

//年选择器laydate.render({ elem: '#test' ,type: 'year'});

//年月选择器laydate.render({ elem: '#test' ,type: 'month'});

//日期选择器laydate.render({ elem: '#test' //,type: 'date' //默认,可不填});

//时间选择器laydate.render({ elem: '#test' ,type: 'time'});

//日期时间选择器laydate.render({ elem: '#test' ,type: 'datetime'});

range - 开启左右面板范围选择

类型:Boolean/String,默认值:false

如果设置true,将默认采用 “ - ” 分割。 你也可以直接设置分割字符。五种选择器类型均支持左右面板的范围选择。

codelayui.code

//年范围选择laydate.render({ elem: '#test' ,type: 'year' ,range: true //或 range: '~' 来自定义分割字符}); //年月范围选择laydate.render({ elem: '#test' ,type: 'month' ,range: true //或 range: '~' 来自定义分割字符}); //日期范围选择laydate.render({ elem: '#test' ,range: true //或 range: '~' 来自定义分割字符}); //时间范围选择laydate.render({ elem: '#test' ,type: 'time' ,range: true //或 range: '~' 来自定义分割字符}); //日期时间范围选择laydate.render({ elem: '#test' ,type: 'datetime' ,range: true //或 range: '~' 来自定义分割字符}); format - 自定义格式

类型:String,默认值:yyyy-MM-dd

通过日期时间各自的格式符和长度,来设定一个你所需要的日期格式。layDate 支持的格式如下:

通过上述不同的格式符组合成一段日期时间字符串,可任意排版,如下所示:

codelayui.code

//自定义日期格式laydate.render({ elem: '#test' ,format: 'yyyy年MM月dd日' //可任意组合});

value - 初始值

类型:String,默认值:new Date()

支持传入符合format参数设定的日期格式字符,或者 new Date()

codelayui.code

//传入符合format格式的字符给初始值laydate.render({ elem: '#test' ,value: '-08-18' //必须遵循format参数设定的格式}); //传入Date对象给初始值laydate.render({ elem: '#test' ,value: new Date(1534766888000) //参数即为:-08-20 20:08:08 的时间戳}); isInitValue - 初始值填充

类型:Boolean,默认值:false

用于控制是否自动向元素填充初始值(需配合 value 参数使用)

codelayui.code

laydate.render({elem: '#test' ,value: '0910' ,isInitValue: true //允许填充初始值});

注意:该参数为 layui 2.3.0 新增。
min/max - 最小/大范围内的日期时间值

类型:string,默认值:min: '1900-1-1'、max: '2099-12-31'

设定有限范围内的日期或时间值,不在范围内的将不可选中。这两个参数的赋值非常灵活,主要有以下几种情况:

示例layui.code

//日期有效范围只限定在:laydate.render({ elem: '#test' ,min: '-1-1' ,max: '-12-31'}); //日期有效范围限定在:过去一周到未来一周laydate.render({ elem: '#test' ,min: -7 //7天前 ,max: 7 //7天后}); //日期时间有效范围的设定: laydate.render({ elem: '#test' ,type: 'datetime' ,min: '-8-11 12:30:00' ,max: '-8-18 12:30:00'}); //时间有效范围设定在: 上午九点半到下午五点半laydate.render({ elem: '#test' ,type: 'time' ,min: '09:30:00' ,max: '17:30:00'});

毫不保留地说,min和max参数是两个非常强大的存在,合理运用,可帮助用户在日期与时间的选择上带来更为友好的约束与体验。

trigger - 自定义弹出控件的事件

类型:String,默认值:focus,如果绑定的元素非输入框,则默认事件为:click

codelayui.code

//自定义事件laydate.render({ elem: '#test' ,trigger: 'click' //采用click弹出});

show - 默认显示

类型:Boolean,默认值:false

如果设置:true,则控件默认显示在绑定元素的区域。通常用于外部事件调用控件,如:

codelayui.code

//默认显示laydate.render({elem: '#test' ,show: true //直接显示}); //外部事件调用lay('#test1').on('click', function(e){ //假设 test1 是一个按钮 laydate.render({elem: '#test' ,show: true //直接显示 ,closeStop: '#test1' //这里代表的意思是:点击 test1 所在元素阻止关闭事件冒泡。如果不设定,则无法弹出控件 });}); position - 定位方式

类型:String,默认值:absolute

用于设定控件的定位方式,有以下三种可选值:

下面是一个直接嵌套显示的例子:

5月重置现在确定

codelayui.code

【HTML】<span id="testView"></span><div id="test2"></div>

【JS】: //嵌套在指定容器中laydate.render({elem: '#test2' ,position: 'static' ,change: function(value, date){ //监听日期被切换 lay('#testView').html(value); }});

zIndex - 层叠顺序

类型:Number,默认值:66666666

一般用于解决与其它元素的互相被遮掩的问题。如果 position 参数设为 static 时,该参数无效。

codelayui.code

//设定控件的层叠顺序laydate.render({elem: '#test' ,zIndex: 99999999}); showBottom - 是否显示底部栏

类型:Boolean,默认值:true

如果设置false,将不会显示控件的底部栏区域

codelayui.code

//不显示底部栏laydate.render({elem: '#test' ,showBottom: false});

btns - 工具按钮

类型:Array,默认值:['clear', 'now', 'confirm']

右下角显示的按钮,会按照数组顺序排列,内置可识别的值有:clear、now、confirm

codelayui.code

//只显示清空和确认laydate.render({elem: '#test' ,btns: ['clear', 'confirm']}); lang - 语言

类型:String,默认值:cn

我们内置了两种语言版本:cn(中文版)、en(国际版,即英文版)。这里并没有开放自定义文字,是为了避免繁琐的配置。

codelayui.code

//国际版laydate.render({elem: '#test' ,lang: 'en'});

theme - 主题

类型:String,默认值:default

我们内置了多种主题,theme的可选值有:default(默认简约)、molv(墨绿背景)、#颜色值(自定义颜色背景)、grid(格子主题)

codelayui.code

//墨绿背景主题laydate.render({elem: '#test' ,theme: 'molv'}); //自定义背景色主题 - 非常实用laydate.render({elem: '#test' ,theme: '#393D49'}); //格子主题laydate.render({elem: '#test' ,theme: 'grid'});

另外,你还可以传入其它字符,如:theme: 'xxx',那么控件将会多出一个class="laydate-theme-xxx"的CSS类,以便于你单独定制主题。

calendar - 是否显示公历节日

类型:Boolean,默认值:false

我们内置了一些我国通用的公历重要节日,通过设置true来开启。国际版不会显示。

codelayui.code

//允许显示公历节日laydate.render({elem: '#test' ,calendar: true});

mark - 标注重要日子

类型:Object,默认值:无

calendar 参数所代表的公历节日更多情况下是一个摆设。因此,我们还需要自定义标注重要日子,比如结婚纪念日?日程等?它分为以下两种:

可同时设定多个,如:

codelayui.code

//标注重要日子var ins1 = laydate.render({elem: '#test' ,mark: {'0-10-14': '生日' ,'0-12-31': '跨年' //每年12月31日 ,'0-0-10': '工资' //每个月10号 ,'-8-15': '' //具体日期 ,'-8-20': '预发' //如果为空字符,则默认显示数字+徽章 ,'-8-21': '发布' } ,done: function(value, date){if(date.year === && date.month === 8 && date.date === 15){ //点击8月15日,弹出提示语 ins1.hint('中国人民抗日战争胜利72周年'); } }});

非常实用的存在,是时候利用它制作你的日程表了。

控件初始打开的回调

控件在打开时触发,回调返回一个参数:初始的日期时间对象

codelayui.code

laydate.render({elem: '#test' ,ready: function(date){console.log(date); //得到初始的日期时间对象:{year: , month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} }});

日期时间被切换后的回调

年月日时间被切换时都会触发。回调返回三个参数,分别代表:生成的值、日期时间对象、结束的日期时间对象

codelayui.code

laydate.render({elem: '#test' ,change: function(value, date, endDate){console.log(value); //得到日期生成的值,如:-08-18 console.log(date); //得到日期时间对象:{year: , month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 }}); 控件选择完毕后的回调

点击日期、清空、现在、确定均会触发。回调返回三个参数,分别代表:生成的值、日期时间对象、结束的日期时间对象

codelayui.code

laydate.render({elem: '#test' ,done: function(value, date, endDate){console.log(value); //得到日期生成的值,如:-08-18 console.log(date); //得到日期时间对象:{year: , month: 8, date: 18, hours: 0, minutes: 0, seconds: 0} console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。 }});

弹出控件提示

事实上,执行核心方法laydate.render(options)会返回一个当前实例对象。其中包含一些成员属性和方法,比如:hint方法

codelayui.code

var ins1 = laydate.render({elem: '#test' ,change: function(value, date, endDate){ins1.hint(value); //在控件上弹出value值 }}); 配置基础路径

如果你不是采用 layui 或者普通 script 标签方式加载的 laydate.js,而是采用 requirejs 等其它方式引用 laydate,那么你需要设置基础路径,以便 laydate.css 完成加载。

codelayui.code

laydate.path = '/static/xxx/'; //laydate.js 所在目录

//配置好路径后,再调用laydate.render(options);

其它方法from /doc/modules/laydate.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。