欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。

文摘  jQuery layDate日期控件的使用

JQuery 本站 2137 0评论

layDate是一个功能强大的日期选择控件,是目前 layui 独立维护的三大组件(即:layer、layim、layDate)之一,其中主要以:年选择器、年月选择器、日期选择器、时间选择器、日期时间选择器 五种类型的选择方式为基本核心,并且均支持范围选择(即双控件)。内置强劲的自定义日期格式解析和合法校正机制,含中文版和国际版,主题简约却又不失灵活多样。由于内部采用的是零依赖的原生 JavaScript 编写,因此又可作为独立组件使用。


在 layui 2.0 的版本中,layDate 完成了一次巨大的逆袭。

官网:https://www.layui.com/laydate/ 

使用文档:https://www.layui.com/doc/modules/laydate.html 


1.快速使用


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

场景用前准备调用方式
1. 在 layui 模块中使用下载 layui 后,引入layui.csslayui.js即可通过layui.use('laydate', callback)加载模块后,再调用方法
2. 作为独立组件使用去 layDate 独立版本官网下载组件包,引入 laydate.js 即可直接调用方法使用


1.1.在 layui 模块中使用

<!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>


1.2.作为独立组件使用

从官网下载获得layDate文件包后,解压并将laydate整个文件夹(不要拆分结构)存放到你项目的任意目录,使用时,只需引入laydate.js即可。

下面是一个入门示例:

引入layDate.js

<script type="text/javascript" src="laydate/laydate.js"></script>//src要改为自己的路径

html代码

<input type="text" id="test1" placeholder="请选择日期">

js代码

<script>
//type 控件选择器  默认值为date
// year 年份选择器 只提供年列表选择
// month(年月选择器)只提供年、月选择
// date(日期选择器)可选择:年、月、日。type默认值,一般可不填
// time (时间选择器)只提供时、分、秒选择
// datetime(日期时间选择器)可选择:年、月、日、时、分、秒
laydate.render({
    elem:'#test1'//指定元素
    ,type:'date'//默认为date
    ,trigger:'click'//默认为click,即点击后出现日历框
})
</script>

效果

7426643-3045079aec63744e.webp.jpg

完整代码

<!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>

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


更多效果和代码示范

https://www.layui.com/demo/laydate.html 


说明

---请注意:如果你的页面已经使用了 layui,我们强烈推荐你直接采用 layui 内置的 layDate 模块,请勿再重复引用独立版的 laydate.js

---layDate 采用原生 JavaScript 编写,不依赖任何第三方库,兼容所有浏览器(IE6/7除外)

---npm安装:npm install layui-laydate


2.基础参数选项


laydate.render({ 
  elem: '#test' //或 elem: document.getElementById('test')、elem: lay('#test') 等(类型:String/DOM,默认值:无必填项,用于绑定执行日期渲染的元素,值一般为选择器,或DOM对象)
  ,type: 'year'//year-只提供年列表选择||month-只提供年、月选择||date-可选择:年、月、日。type默认值,一般可不填||time-只提供时、分、秒选择||datetime-可选择:年、月、日、时、分、秒
  ,range: true //或 range: '~' 来自定义分割字符
  ,format: 'yyyy年MM月dd日' //可任意组合 yyyy年MM月dd日 HH时mm分ss秒===2017年08月18日 20时08分08秒
  ,value: '2018-08-18' //必须遵循format参数设定的格式String,默认值:new Date()
  ,min: '2017-1-1'//min/max - 最小/大范围内的日期时间值 类型:string,默认值:min: '1900-1-1'、max: '2099-12-31'
  ,max: '2017-12-31'
  ,trigger: 'click' // 自定义弹出控件的事件(类型:String,默认值:focus,如果绑定的元素非输入框,则默认事件为:click)-采用click弹出
  ,show: true //默认显示-类型:Boolean,默认值:false;;;;如果设置: true,则控件默认显示在绑定元素的区域。通常用于外部事件调用控件
  ,position: 'static'//类型:String,默认值:absolute  (fixed,absolute,static)
  ,zIndex: 99999999//层叠顺序-类型:Number,默认值:66666666一般用于解决与其它元素的互相被遮掩的问题。如果 position 参数设为 static 时,该参数无效
  ,showBottom: false//是否显示底部栏--类型:Boolean,默认值:true如果设置 false,将不会显示控件的底部栏区域
  ,btns: ['clear', 'now', 'confirm']//类型:Array,默认值:['clear', 'now', 'confirm'](显示清空,今天,确认)
  ,lang: 'en'//语言类型:String,默认值:cn--内置了两种语言版本:cn(中文版)、en(国际版,即英文版)
  ,theme: 'grid'//主题-类型:String,默认值:default,theme的可选值有:default(默认简约)、molv(墨绿背景)、#颜色值(自定义颜色背景)、grid(格子主题)
  ,calendar: true//是否显示公历节日--类型:Boolean,默认值:false
  ,mark: {//标注重要日子--类型:Object,默认值:无
    '0-10-14': '生日'
    ,'0-12-31': '跨年' //每年12月31日
    ,'0-0-10': '工资' //每个月10号
    ,'2017-8-15': '' //具体日期
    ,'2017-8-20': '预发' //如果为空字符,则默认显示数字+徽章
    ,'2017-8-21': '发布'
  }
  ,ready: function(date){//控件在打开时触发,回调返回一个参数
    console.log(date); //得到初始的日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
  }
  ,change: function(value, date, endDate){//日期时间被切换后的回调
    console.log(value); //得到日期生成的值,如:2017-08-18
    console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
    console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
  }
  ,done: function(value, date, endDate){//控件选择完毕后的回调---点击日期、清空、现在、确定均会触发。
    console.log(value); //得到日期生成的值,如:2017-08-18
    console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
    console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
  }
});


2.1核心方法:laydate(options);

options是一个对象,它包含了以下key: 

'默认值'elem: '#id',    //需显示日期的元素选择器

event: 'click',    //触发事件

format: 'YYYY-MM-DD hh:mm:ss',    //日期格式

istime: false,    //是否开启时间选择

isclear: true,    //是否显示清空

istoday: true,    //是否显示今天

issure: true,是否显示确认festival: true     //是否显示节日

min: '1900-01-01 00:00:00',    //最小日期

max: '2099-12-31 23:59:59',    //最大日期

start: '2014-6-15 23:00:00',    //开始日期

fixed: false,    //是否固定在可视区域

zIndex: 99999999,    //css z-index

choose: function(dates) {     //选择好日期的回调    }


2.2其它方法/属性

laydate.v     //获取laydate版本号

laydate.skin(lib);     //加载皮肤,参数lib为皮肤名 

/*

layer.now支持多类型参数。timestamp可以是前后若干天,也可以是一个时间戳。format为日期格式,为空时则采用默认的“-”分割。

如laydate.now(-2)将返回前天,laydate.now(3999634079890)将返回2096-09-28

*/

layer.now(timestamp, format);     //该方法提供了丰富的功能,推荐灵活使用。

laydate.reset();     //重设日历控件坐标,一般用于页面dom结构改变时。无参


详细开发文档:https://www.layui.com/doc/modules/laydate.html 


转载请注明: ITTXX.CN--分享互联网 » jQuery layDate日期控件的使用

最后更新:2018-10-23 16:29:05

赞 (4) or 分享 ()
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽