bootstrap laydate日期组件使用详解


Posted in Javascript onJanuary 04, 2017

在日常的网页开发过程中,日期组件已经成为不可或缺的组件之一。同时,随着广大杰出攻城狮的不懈努力,也出现了很多优秀的日期组件,其中我个人觉得 layDate 日期组件是一个非常不错的组件,简洁易用,样式清爽。

此文主要以贤心所作的 layDate 组件进行日期选择的演示,敬请各位小主们参阅,若有不足之处,敬请大神指正,不胜感激!

闲不多言,直接上码。

演示文档的工程目录如下图所示:

bootstrap laydate日期组件使用详解

laydate-demo.html 对应的源代码为:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>laydate 日期插件演示示例</title>

 <script type="text/javascript" src="laydate/laydate.js"></script>
 <script type="text/javascript" src="js/dateUtil.js"></script>
 <link rel="stylesheet" type="text/css" href="css/page.css" />
 </head>

 <body>
 <div class="box">
  <h3>laydate API:</h3>
  <pre>
  一、核心方法:laydate(options);
  options是一个对象,它包含了以下key: '默认值'
   elem: '#id',   // 日期显示元素选择器,laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
   event: 'click',   // 触发事件。如果没有传入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){  // 选择好日期的回调
  }
  
  二、其它方法/属性

  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结构改变时。无参
 </pre>
 </div>

 <div class="box">
  <h3>演示一:直接调用 laydate,无参调用</h3>

  <input placeholder="请输入日期" class="laydate-icon" onclick="laydate()">
 </div>

 <div class="box">
  <h3>演示二:js外部调用</h3>
  
  <input class="laydate-icon" id="demo" value="2014-07-18">
 </div>

 <div class="box">
  <h3>演示三:图标触发日期</h3>

  <input id="ico" readonly><span class="laydate-icon" onclick="laydate({elem: '#ico'});"></span>
 </div>

 <div class="box">
  <h3>演示四:自定义日期格式</h3>
  
  <input id="custom_date_format" class="laydate-icon"></input>
 </div>

 <div class="box">
  <h3>演示五:基于当前日期控制日期范围</h3>
  
  <input id="custom_date_scope" class="laydate-icon"></input>
 </div>

 <div class="box">
  <h3>演示六:显示日期和时间</h3>
  
  <input id="custom_date_full" class="laydate-icon"></input>
 </div>

 <div class="box">
  <h3>演示七:双日期范围显示限制</h3>
  
  有效时间:<input id="time_start" class="laydate-icon"></input> --- <input id="time_end" class="laydate-icon"></input>
 </div>

 <div class="box" style="text-align:center">
  <p>
  以上,就是我基于贤心所作日期插件 layDate 进行的日期组件演示。<br>
  个人觉得,其是一款非常不错的日期插件,对其皮肤样式,我个人比较倾向选择 淡蓝 的样式,简洁明快。<br>
  以下为相应的参考链接以及 layDate 插件下载的目录(内含所需的皮肤)。
  </p>
  <a href="http://www.w3school.com.cn/jsref/jsref_obj_date.asp" target="_blank">JavaScript Date 对象</a>
  <a href="http://yunpan.cn/ccMrbLZbZgMQC" target="_blank">layDate 插件(提取码:a36a)</a>
 </div>

 <script>
  ;!function(){
  laydate.skin('danlan');

  // 演示二:js外部调用
  laydate({
   elem: '#demo'
  })
  }();

  /*
  * 演示四:自定义日期格式
  */
  laydate({
  elem: '#custom_date_format',
  format: 'YYYY-MM', // 分隔符可以任意定义,该例子表示只显示年月
  festival: true, // 显示节日

  choose: function(datas){ // 选择日期完毕的回调
   alert('您选择的日期为:'+datas);
  }
  });

  /*
  * 演示五:基于当前日期控制日期范围
  */
  laydate({
  elem: '#custom_date_scope',
  min: laydate.now(-7), // -1代表昨天,-2代表前天,以此类推
  max: laydate.now(+7) // +1代表明天,+2代表后天,以此类推
  });

  /*
  * 演示六:显示日期和时间
  */
  laydate({
  elem: '#custom_date_full',
  format: 'YYYY-MM-DD hh:mm:ss', // 分隔符可以任意定义,该例子表示只显示年月
  festival: true,  // 显示节日
  istime: true,

  choose: function(dates){ // 选择日期完毕的回调
   alert('您选择的日期时间为:'+dates);
  }
  });

  /*
  * 演示七:双日期范围显示限制
  */
  var start_time = {
  elem: '#time_start',
  format: 'YYYY-MM-DD hh:mm:ss',
  min: laydate.now(),  // 设定最小日期为当前日期
  //max: laydate.now(+5), // 最大日期
  istime: true,
  istoday: false,

  choose: function(dates){
   var cur = convertString2Date(dates);
   var str = convertDate2String(cur);
   var mse = adjustDate(cur, 0);
   var ad = convertDate2String(mse);

   alert("当前日期:" + cur + "\n\n格式日期:" + str + "\n\n毫秒总数:" + mse + "\n\n调整日期:" + mse
    + "\n\n加 1 秒:" + convertDate2String(adjustDate(cur, 1))
    + "\n\n加 1 分:" + convertDate2String(adjustDate(cur, 60))
    + "\n\n加 1 时:" + convertDate2String(adjustDate(cur, 60*60))
    + "\n\n加 1 天:" + convertDate2String(adjustDate(cur, 60*60*24))
    + "\n\n加 1 月:" + convertDate2String(adjustDate(cur, 60*60*24*30))
    + "\n\n加 1 年:" + convertDate2String(adjustDate(cur, 60*60*24*30*12))
    + "\n\n减 1 秒:" + convertDate2String(adjustDate(cur, -1))
    + "\n\n减 1 分:" + convertDate2String(adjustDate(cur, -60))
    + "\n\n减 1 时:" + convertDate2String(adjustDate(cur, -60*60))
    + "\n\n减 1 天:" + convertDate2String(adjustDate(cur, -60*60*24))
    + "\n\n减 1 月:" + convertDate2String(adjustDate(cur, -60*60*24*30))
    + "\n\n减 1 年:" + convertDate2String(adjustDate(cur, -60*60*24*30*12)));

   // 开始日选好后,重置结束日的最小日期为下一天
   end_time.min = convertDate2String(adjustDate(cur, 60*60*24));
   // 将结束日的初始值设定为开始日的第三天
   end_time.start = convertDate2String(adjustDate(cur, 60*60*24*2));
   // 将结束日的终止值设定为开始日的第三十天,日期范围为一个月
   end_time.max = convertDate2String(adjustDate(cur, 60*60*24*30));
  }
  };

  var end_time = {
  elem: '#time_end',
  format: 'YYYY-MM-DD hh:mm:ss',
  min: laydate.now(),
  max: '2099-06-16 23:59:59',
  istime: true,
  istoday: false,

  choose: function(dates){
   var cur = convertString2Date(dates);

   // 结束日选好后,重置开始日的最大日期为前第一天
   start_time.max = convertDate2String(adjustDate(cur, -60*60*24));
   // 将起始日的初始值设定为结束日的前第三十天
   start_time.start = convertDate2String(adjustDate(cur, -60*60*24*30));
   // 将起始日的起始日期设定为结束日的前第三十天,日期范围为一个月
   start_time.min = convertDate2String(adjustDate(cur, -60*60*24*30));
  }
  };

  laydate(start_time);
  laydate(end_time);
 </script>
 </body>
</html>

page.css 对应的源码为:

*{
 margin:0;
 padding:0;
 list-style:none;
}

html{
 background-color:#E3E3E3;
 font-size:14px;
 color:#000;
 font-family:'微软雅黑'
}

h2{
 line-height:30px;
 font-size:20px;
}

a,a:hover{
 text-decoration:none;
}

pre{
 font-family:'微软雅黑'
}

.box{
 width:1200px;
 padding:10px 20px;
 background-color:#fff;
 margin:10px auto;
}

.box a{
 padding-right:20px;
}

h3{
 margin:10px 0;
}

.layinput{
 height: 22px;
 line-height: 22px;
 width: 150px;
 margin: 0;
}

convertString2Date 函数对应的源码如下:

bootstrap laydate日期组件使用详解

convertDate2String 函数对应的源码如下:

bootstrap laydate日期组件使用详解

adjustDate 函数对应的源码如下:

bootstrap laydate日期组件使用详解

运行结果如下所示:

bootstrap laydate日期组件使用详解

至此,HTML-001-日期组件 layDate 演示顺利完结,希望此文能够给初学 HTML 的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢!

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript动画效果类封装代码
Aug 28 Javascript
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
Nov 12 Javascript
基于jQuery的实现简单的分页控件
Oct 10 Javascript
jquery实现点击消失的代码
Mar 03 Javascript
jQuery实现HTML表格单元格的合并功能
Apr 06 Javascript
js实现股票实时刷新数据案例
May 14 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
Mar 21 Javascript
使用微信小程序开发弹出框应用实例详解
Oct 18 Javascript
layui实现三级联动效果
Jul 26 Javascript
js 实现 list转换成tree的方法示例(数组到树)
Aug 18 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
Mar 25 Javascript
BootStrap 模态框实现刷新网页并关闭功能
Jan 04 #Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
Jan 04 #Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
Jan 04 #Javascript
通过sails和阿里大于实现短信验证
Jan 04 #Javascript
jQuery实现手机上输入后隐藏键盘功能
Jan 04 #Javascript
AngularJS控制器controller给模型数据赋初始值的方法
Jan 04 #Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
Jan 04 #Javascript
You might like
介绍php设计模式中的工厂模式
2008/06/12 PHP
PHP 七大优势分析
2009/06/23 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
2014/06/12 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
接收键盘指令的脚本
2006/06/26 Javascript
动态改变textbox的宽高的js
2006/10/26 Javascript
一些技巧性实用js代码小结
2009/10/14 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
Python线性方程组求解运算示例
2018/01/17 Python
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
用Python解决x的n次方问题
2019/02/08 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
基于Python的OCR实现示例
2020/04/03 Python
python re.match()用法相关示例
2021/01/27 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
小学数学教研活动总结
2014/07/01 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
新手初学Java网络编程
2021/07/07 Java/Android