bootstrap laydate

在日常的網頁開發過程中,日期組件已經成爲不可或缺的組件之一。同時,隨着廣大傑出攻城獅的不懈努力,也出現了很多優秀的日期組件,其中我個人覺得 layDate 日期組件是一個非常不錯的組件,簡潔易用,樣式清爽。

此文主要以賢心所作的 layDate 組件進行日期選擇的演示,敬請各位小主們參閱,若有不足之處,敬請大神指正,不勝感激!

閒不多言,直接上碼。

演示文檔的工程目錄如下圖所示:

 

laydate-demo.html 對應的源代碼爲:

複製代碼
  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3     <head>
  4         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5         <title>laydate 日期插件演示示例</title>
  6 
  7         <script type="text/javascript" src="laydate/laydate.js"></script>
  8         <script type="text/javascript" src="js/dateUtil.js"></script>
  9         <link rel="stylesheet" type="text/css" href="css/page.css" />
 10     </head>
 11 
 12     <body>
 13         <div class="box">
 14             <h3>laydate API:</h3>
 15             <pre>
 16                 一、核心方法:laydate(options);
 17                 options是一個對象,它包含了以下key: '默認值'
 18                     elem: '#id',                        // 日期顯示元素選擇器,laydate.js封裝了一個輕量級的選擇器引擎,因此elem還允許你傳入class、tag但必須按照這種方式 '#id .class'
 19                     event: 'click',                    // 觸發事件。如果沒有傳入event,則按照默認的click
 20                     format: 'YYYY-MM-DD hh:mm:ss',    // 日期格式
 21                     istime: false,                        // 是否開啓時間選擇
 22                     isclear: true,                        // 是否顯示清空
 23                     istoday: true,                    // 是否顯示今天
 24                     issure: true,                        // 是否顯示確認
 25                     festival: true,                    // 是否顯示節日
 26                     min: '1900-01-01 00:00:00',            // 最小日期
 27                     max: '2099-12-31 23:59:59',        // 最大日期
 28                     start: '2014-6-15 23:00:00',            // 開始日期
 29                     fixed: false,                        // 是否固定在可視區域
 30                     zIndex: 99999999,                // css z-index
 31                     choose: function(dates){            // 選擇好日期的回調
 32                 }
 33             
 34                 二、其它方法/屬性
 35 
 36                 laydate.v            // 獲取laydate版本號
 37                 laydate.skin(lib);    // 加載皮膚,參數lib爲皮膚名 
 38             
 39                 /*
 40                     layer.now支持多類型參數。timestamp可以是前後若干天,也可以是一個時間戳。format爲日期格式,爲空時則採用默認的“-”分割。
 41                     如laydate.now(-2)將返回前天,laydate.now(3999634079890)將返回2096-09-28
 42                 */
 43                 layer.now(timestamp, format);   // 該方法提供了豐富的功能,推薦靈活使用。
 44             
 45                 laydate.reset();                // 重設日曆控件座標,一般用於頁面dom結構改變時。無參
 46         </pre>
 47         </div>
 48 
 49         <div class="box">
 50             <h3>演示一:直接調用 laydate,無參調用</h3>
 51 
 52             <input placeholder="請輸入日期" class="laydate-icon" onclick="laydate()">
 53         </div>
 54 
 55         <div class="box">
 56             <h3>演示二:js外部調用</h3>
 57             
 58             <input class="laydate-icon" id="demo" value="2014-07-18">
 59         </div>
 60 
 61         <div class="box">
 62             <h3>演示三:圖標觸發日期</h3>
 63 
 64             <input id="ico" readonly><span class="laydate-icon" onclick="laydate({elem: '#ico'});"></span>
 65         </div>
 66 
 67         <div class="box">
 68             <h3>演示四:自定義日期格式</h3>
 69             
 70             <input id="custom_date_format" class="laydate-icon"></input>
 71         </div>
 72 
 73         <div class="box">
 74             <h3>演示五:基於當前日期控制日期範圍</h3>
 75             
 76             <input id="custom_date_scope" class="laydate-icon"></input>
 77         </div>
 78 
 79         <div class="box">
 80             <h3>演示六:顯示日期和時間</h3>
 81             
 82             <input id="custom_date_full" class="laydate-icon"></input>
 83         </div>
 84 
 85         <div class="box">
 86             <h3>演示七:雙日期範圍顯示限制</h3>
 87             
 88             有效時間:<input id="time_start" class="laydate-icon"></input> --- <input id="time_end" class="laydate-icon"></input>
 89         </div>
 90 
 91         <div class="box" style="text-align:center">
 92             <p>
 93                 以上,就是我基於賢心所作日期插件 layDate 進行的日期組件演示。<br>
 94                 個人覺得,其是一款非常不錯的日期插件,對其皮膚樣式,我個人比較傾向選擇 淡藍 的樣式,簡潔明快。<br>
 95                 以下爲相應的參考鏈接以及 layDate 插件下載的目錄(內含所需的皮膚)。
 96             </p>
 97             <a href="http://www.w3school.com.cn/jsref/jsref_obj_date.asp" target="_blank">JavaScript Date 對象</a>
 98             <a href="http://yunpan.cn/ccMrbLZbZgMQC" target="_blank">layDate 插件(提取碼:a36a)</a>
 99         </div>
100 
101         <script>
102             ;!function(){
103                 laydate.skin('danlan');
104 
105                 // 演示二:js外部調用
106                 laydate({
107                    elem: '#demo'
108                 })
109             }();
110 
111             /*
112              * 演示四:自定義日期格式
113              */
114             laydate({
115                 elem: '#custom_date_format',
116                 format: 'YYYY-MM', // 分隔符可以任意定義,該例子表示只顯示年月
117                 festival: true,    // 顯示節日
118 
119                 choose: function(datas){ // 選擇日期完畢的回調
120                     alert('您選擇的日期爲:'+datas);
121                 }
122             });
123 
124             /*
125              * 演示五:基於當前日期控制日期範圍
126              */
127             laydate({
128                 elem: '#custom_date_scope',
129                 min: laydate.now(-7), // -1代表昨天,-2代表前天,以此類推
130                 max: laydate.now(+7)  // +1代表明天,+2代表後天,以此類推
131             });
132 
133             /*
134              * 演示六:顯示日期和時間
135              */
136             laydate({
137                 elem: '#custom_date_full',
138                 format: 'YYYY-MM-DD hh:mm:ss', // 分隔符可以任意定義,該例子表示只顯示年月
139                 festival: true,                // 顯示節日
140                 istime: true,
141 
142                 choose: function(dates){       // 選擇日期完畢的回調
143                     alert('您選擇的日期時間爲:'+dates);
144                 }
145             });
146 
147             /*
148              * 演示七:雙日期範圍顯示限制
149              */
150             var start_time = {
151                 elem: '#time_start',
152                 format: 'YYYY-MM-DD hh:mm:ss',
153                 min: laydate.now(),           // 設定最小日期爲當前日期
154                 //max: laydate.now(+5),       // 最大日期
155                 istime: true,
156                 istoday: false,
157 
158                 choose: function(dates){
159                     var cur = convertString2Date(dates);
160                     var str = convertDate2String(cur);
161                     var mse = adjustDate(cur, 0);
162                     var ad  = convertDate2String(mse);
163 
164                     alert("當前日期:" + cur + "\n\n格式日期:" + str + "\n\n毫秒總數:" + mse + "\n\n調整日期:" + mse
165                            + "\n\n加 1 秒:" + convertDate2String(adjustDate(cur, 1))
166                            + "\n\n加 1 分:" + convertDate2String(adjustDate(cur, 60))
167                            + "\n\n加 1 時:" + convertDate2String(adjustDate(cur, 60*60))
168                            + "\n\n加 1 天:" + convertDate2String(adjustDate(cur, 60*60*24))
169                            + "\n\n加 1 月:" + convertDate2String(adjustDate(cur, 60*60*24*30))
170                            + "\n\n加 1 年:" + convertDate2String(adjustDate(cur, 60*60*24*30*12))
171                            + "\n\n減 1 秒:" + convertDate2String(adjustDate(cur, -1))
172                            + "\n\n減 1 分:" + convertDate2String(adjustDate(cur, -60))
173                            + "\n\n減 1 時:" + convertDate2String(adjustDate(cur, -60*60))
174                            + "\n\n減 1 天:" + convertDate2String(adjustDate(cur, -60*60*24))
175                            + "\n\n減 1 月:" + convertDate2String(adjustDate(cur, -60*60*24*30))
176                            + "\n\n減 1 年:" + convertDate2String(adjustDate(cur, -60*60*24*30*12)));
177 
178                     // 開始日選好後,重置結束日的最小日期爲下一天
179                     end_time.min = convertDate2String(adjustDate(cur, 60*60*24));
180                     // 將結束日的初始值設定爲開始日的第三天
181                     end_time.start = convertDate2String(adjustDate(cur, 60*60*24*2));
182                     // 將結束日的終止值設定爲開始日的第三十天,日期範圍爲一個月
183                     end_time.max = convertDate2String(adjustDate(cur, 60*60*24*30));
184                 }
185             };
186 
187             var end_time = {
188                 elem: '#time_end',
189                 format: 'YYYY-MM-DD hh:mm:ss',
190                 min: laydate.now(),
191                 max: '2099-06-16 23:59:59',
192                 istime: true,
193                 istoday: false,
194 
195                 choose: function(dates){
196                     var cur = convertString2Date(dates);
197 
198                     // 結束日選好後,重置開始日的最大日期爲前第一天
199                     start_time.max = convertDate2String(adjustDate(cur, -60*60*24));
200                     // 將起始日的初始值設定爲結束日的前第三十天
201                     start_time.start = convertDate2String(adjustDate(cur, -60*60*24*30));
202                     // 將起始日的起始日期設定爲結束日的前第三十天,日期範圍爲一個月
203                     start_time.min = convertDate2String(adjustDate(cur, -60*60*24*30));
204                 }
205             };
206 
207             laydate(start_time);
208             laydate(end_time);
209         </script>
210     </body>
211 </html>
複製代碼

page.css 對應的源碼爲:

複製代碼
 1 *{
 2     margin:0;
 3     padding:0;
 4     list-style:none;
 5 }
 6 
 7 html{
 8     background-color:#E3E3E3;
 9     font-size:14px;
10     color:#000;
11     font-family:'微軟雅黑'
12 }
13 
14 h2{
15     line-height:30px;
16     font-size:20px;
17 }
18 
19 a,a:hover{
20     text-decoration:none;
21 }
22 
23 pre{
24     font-family:'微軟雅黑'
25 }
26 
27 .box{
28     width:1200px;
29     padding:10px 20px;
30     background-color:#fff;
31     margin:10px auto;
32 }
33 
34 .box a{
35     padding-right:20px;
36 }
37 
38 h3{
39     margin:10px 0;
40 }
41 
42 .layinput{
43     height: 22px;
44     line-height: 22px;
45     width: 150px;
46     margin: 0;
47 }
複製代碼

convertString2Date 函數對應的源碼如下:

convertDate2String 函數對應的源碼如下:

adjustDate 函數對應的源碼如下:

運行結果如下所示:

 

至此, HTML-001-日期組件 layDate 演示 順利完結,希望此文能夠給初學 HTML 的您一份參考。

最後,非常感謝親的駐足,希望此文能對親有所幫助。熱烈歡迎親一起探討,共同進步。非常感謝! ^_^

 

我本渺小,但山峯,我一次次絕頂! 


PS:若有錯誤,敬請告知,不勝感激! 
Copyright @範豐平 版權所有,如需轉載請標明本文原始鏈接出處,嚴禁商業用途! 我的個人博客鏈接地址:http://www.cnblogs.com/fengpingfan
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章