日期和时间组件文档 - layui.laydate
如你所见,layDate 在 layui 2.0 的版本中迎来一次重生。无论曾经它给你带来过多么糟糕的体验,从今往后,所有的旧坑都将弥合。全面重写的 layDate 包含了大量的更新,其中主要以:年选择器、年月选择器、日期选择器、时间选择器、日期时间选择器 五种类型的选择方式为基本核心,并且均支持范围选择(即双控件)。内置强劲的自定义日期格式解析和合法校正机制,含中文版和国际版,主题简约却又不失灵活多样。由于内部采用的是零依赖的原生 JavaScript 编写,因此又可作为独立组件使用。毫无疑问,这是 layui 的虔心之作。
和 layer 一样,你可以在 layui 中使用 layDate,也可直接使用 layDate 独立版,请按照你的实际需求来选择。
场景 | 用前准备 | 调用方式 |
---|---|---|
1. 在 layui 模块中使用 | 下载 layui 后,引入layui.css和layui.js即可 | 通过layui.use('laydate', callback)加载模块后,再调用方法 |
2. 作为独立组件使用 | 去 layDate 独立版本官网下载组件包,引入 laydate.js 即可 | 直接调用方法使用 |
在 layui 模块中使用code layDate快速使用 layui.use('laydate', function(){ var laydate = layui.laydate; //执行一个laydate实例 laydate.render({ elem: '#test1' //指定元素 });});
作为独立组件使用code 使用 layDate 独立版 //执行一个laydate实例laydate.render({ elem: '#test1' //指定元素});
除了在组件加载方式有一些小小的不同,其它都完全类似
通过核心方法:laydate.render(options) 来设置基础参数,也可以通过方法:laydate.set(options) 来设定全局基础参数.
类型:String/DOM,默认值:无
必填项,用于绑定执行日期渲染的元素,值一般为选择器,或DOM对象
codelaydate.render({ elem: '#test' //或 elem: document.getElementById('test')、elem: lay('#test') 等}); type - 控件选择类型
类型:String,默认值:date
用于单独提供不同的选择器类型,可选值如下表:
type可选值 | 名称 | 用途 |
---|---|---|
year | 年选择器 | 只提供年列表选择 |
month | 年月选择器 | 只提供年、月选择 |
date | 日期选择器 | 可选择:年、月、日。type默认值,一般可不填 |
time | 时间选择器 | 只提供时、分、秒选择 |
datetime | 日期时间选择器 | 可选择:年、月、日、时、分、秒 |
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/Array,默认值:false
如果设置 true,将默认采用 “ - ” 分割。 你也可以直接设置 分割字符。五种选择器类型均支持左右面板的范围选择。
code//日期范围选择laydate.render({ elem: '#test' ,range: true //或 range: '~' 来自定义分割字符}); //日期时间范围选择laydate.render({ elem: '#test' ,type: 'datetime' ,range: true}); //时间范围选择laydate.render({ elem: '#test' ,type: 'time' ,range: true}); //年范围选择laydate.render({ elem: '#test' ,type: 'year' ,range: true}); //年月范围选择laydate.render({ elem: '#test' ,type: 'month' ,range: true});
如果您要将开始时间和结束时间分开,那么还可以将 range 参数设置为数组,如:
code 日期范围 - laydate.render({ elem: '#test-range' //开始时间和结束时间所在 input 框的父选择器 //设置开始日期、日期日期的 input 选择器 ,range: ['#startDate', '#endDate'] //数组格式为 layui 2.6.6 开始新增}); format - 自定义格式
类型:String,默认值:yyyy-MM-dd
通过日期时间各自的格式符和长度,来设定一个你所需要的日期格式。layDate 支持的格式如下:
格式符 | 说明 |
---|---|
yyyy | 年份,至少四位数。如果不足四位,则前面补零 |
y | 年份,不限制位数,即不管年份多少位,前面均不补零 |
MM | 月份,至少两位数。如果不足两位,则前面补零。 |
M | 月份,允许一位数。 |
dd | 日期,至少两位数。如果不足两位,则前面补零。 |
d | 日期,允许一位数。 |
HH | 小时,至少两位数。如果不足两位,则前面补零。 |
H | 小时,允许一位数。 |
mm | 分钟,至少两位数。如果不足两位,则前面补零。 |
m | 分钟,允许一位数。 |
ss | 秒数,至少两位数。如果不足两位,则前面补零。 |
s | 秒数,允许一位数。 |
通过上述不同的格式符组合成一段日期时间字符串,可任意排版,如下所示:
格式 | 示例值 |
---|---|
yyyy-MM-dd HH:mm:ss | 2017-08-18 20:08:08 |
yyyy年MM月dd日 HH时mm分ss秒 | 2017年08月18日 20时08分08秒 |
yyyyMMdd | 20170818 |
dd/MM/yyyy | 18/08/2017 |
yyyy年M月 | 2017年8月 |
M月d日 | 8月18日 |
北京时间:HH点mm分 | 北京时间:20点08分 |
yyyy年的M月某天晚上,大概H点 | 2017年的8月某天晚上,大概20点 |
code//自定义日期格式laydate.render({ elem: '#test' ,format: 'yyyy年MM月dd日' //可任意组合}); value - 初始值
类型:String,默认值:new Date()
支持传入符合format参数设定的日期格式字符,或者 new Date()
code//传入符合format格式的字符给初始值laydate.render({ elem: '#test' ,value: '2018-08-18' //必须遵循format参数设定的格式}); //传入Date对象给初始值laydate.render({ elem: '#test' ,value: new Date(1534766888000) //参数即为:2018-08-20 20:08:08 的时间戳}); isInitValue - 初始值填充
类型:Boolean,默认值:true
用于控制是否自动向元素填充初始值(需配合 value 参数使用)
codelaydate.render({ elem: '#test' ,value: '2017-09-10' ,isInitValue: false //是否允许填充初始值,默认为 true});
注意:该参数为 layui 2.3.0 新增。