bootstrap laydate日期組件使用詳解
在日常的網(wǎng)頁(yè)開(kāi)發(fā)過(guò)程中,日期組件已經(jīng)成為不可或缺的組件之一。同時(shí),隨著廣大杰出攻城獅的不懈努力,也出現(xiàn)了很多優(yōu)秀的日期組件,其中我個(gè)人覺(jué)得 layDate 日期組件是一個(gè)非常不錯(cuò)的組件,簡(jiǎn)潔易用,樣式清爽。
此文主要以賢心所作的 layDate 組件進(jìn)行日期選擇的演示,敬請(qǐng)各位小主們參閱,若有不足之處,敬請(qǐng)大神指正,不勝感激!
閑不多言,直接上碼。
演示文檔的工程目錄如下圖所示:

laydate-demo.html 對(duì)應(yīng)的源代碼為:
<!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是一個(gè)對(duì)象,它包含了以下key: '默認(rèn)值'
elem: '#id', // 日期顯示元素選擇器,laydate.js封裝了一個(gè)輕量級(jí)的選擇器引擎,因此elem還允許你傳入class、tag但必須按照這種方式 '#id .class'
event: 'click', // 觸發(fā)事件。如果沒(méi)有傳入event,則按照默認(rèn)的click
format: 'YYYY-MM-DD hh:mm:ss', // 日期格式
istime: false, // 是否開(kāi)啟時(shí)間選擇
isclear: true, // 是否顯示清空
istoday: true, // 是否顯示今天
issure: true, // 是否顯示確認(rèn)
festival: true, // 是否顯示節(jié)日
min: '1900-01-01 00:00:00', // 最小日期
max: '2099-12-31 23:59:59', // 最大日期
start: '2014-6-15 23:00:00', // 開(kāi)始日期
fixed: false, // 是否固定在可視區(qū)域
zIndex: 99999999, // css z-index
choose: function(dates){ // 選擇好日期的回調(diào)
}
二、其它方法/屬性
laydate.v // 獲取laydate版本號(hào)
laydate.skin(lib); // 加載皮膚,參數(shù)lib為皮膚名
/*
layer.now支持多類(lèi)型參數(shù)。timestamp可以是前后若干天,也可以是一個(gè)時(shí)間戳。format為日期格式,為空時(shí)則采用默認(rèn)的“-”分割。
如laydate.now(-2)將返回前天,laydate.now(3999634079890)將返回2096-09-28
*/
layer.now(timestamp, format); // 該方法提供了豐富的功能,推薦靈活使用。
laydate.reset(); // 重設(shè)日歷控件坐標(biāo),一般用于頁(yè)面dom結(jié)構(gòu)改變時(shí)。無(wú)參
</pre>
</div>
<div class="box">
<h3>演示一:直接調(diào)用 laydate,無(wú)參調(diào)用</h3>
<input placeholder="請(qǐng)輸入日期" class="laydate-icon" onclick="laydate()">
</div>
<div class="box">
<h3>演示二:js外部調(diào)用</h3>
<input class="laydate-icon" id="demo" value="2014-07-18">
</div>
<div class="box">
<h3>演示三:圖標(biāo)觸發(fā)日期</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>演示五:基于當(dāng)前日期控制日期范圍</h3>
<input id="custom_date_scope" class="laydate-icon"></input>
</div>
<div class="box">
<h3>演示六:顯示日期和時(shí)間</h3>
<input id="custom_date_full" class="laydate-icon"></input>
</div>
<div class="box">
<h3>演示七:雙日期范圍顯示限制</h3>
有效時(shí)間:<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 進(jìn)行的日期組件演示。<br>
個(gè)人覺(jué)得,其是一款非常不錯(cuò)的日期插件,對(duì)其皮膚樣式,我個(gè)人比較傾向選擇 淡藍(lán) 的樣式,簡(jiǎn)潔明快。<br>
以下為相應(yīng)的參考鏈接以及 layDate 插件下載的目錄(內(nèi)含所需的皮膚)。
</p>
<a target="_blank">JavaScript Date 對(duì)象</a>
<a target="_blank">layDate 插件(提取碼:a36a)</a>
</div>
<script>
;!function(){
laydate.skin('danlan');
// 演示二:js外部調(diào)用
laydate({
elem: '#demo'
})
}();
/*
* 演示四:自定義日期格式
*/
laydate({
elem: '#custom_date_format',
format: 'YYYY-MM', // 分隔符可以任意定義,該例子表示只顯示年月
festival: true, // 顯示節(jié)日
choose: function(datas){ // 選擇日期完畢的回調(diào)
alert('您選擇的日期為:'+datas);
}
});
/*
* 演示五:基于當(dāng)前日期控制日期范圍
*/
laydate({
elem: '#custom_date_scope',
min: laydate.now(-7), // -1代表昨天,-2代表前天,以此類(lèi)推
max: laydate.now(+7) // +1代表明天,+2代表后天,以此類(lèi)推
});
/*
* 演示六:顯示日期和時(shí)間
*/
laydate({
elem: '#custom_date_full',
format: 'YYYY-MM-DD hh:mm:ss', // 分隔符可以任意定義,該例子表示只顯示年月
festival: true, // 顯示節(jié)日
istime: true,
choose: function(dates){ // 選擇日期完畢的回調(diào)
alert('您選擇的日期時(shí)間為:'+dates);
}
});
/*
* 演示七:雙日期范圍顯示限制
*/
var start_time = {
elem: '#time_start',
format: 'YYYY-MM-DD hh:mm:ss',
min: laydate.now(), // 設(shè)定最小日期為當(dāng)前日期
//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("當(dāng)前日期:" + cur + "\n\n格式日期:" + str + "\n\n毫秒總數(shù):" + mse + "\n\n調(diào)整日期:" + mse
+ "\n\n加 1 秒:" + convertDate2String(adjustDate(cur, 1))
+ "\n\n加 1 分:" + convertDate2String(adjustDate(cur, 60))
+ "\n\n加 1 時(shí):" + 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 時(shí):" + 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)));
// 開(kāi)始日選好后,重置結(jié)束日的最小日期為下一天
end_time.min = convertDate2String(adjustDate(cur, 60*60*24));
// 將結(jié)束日的初始值設(shè)定為開(kāi)始日的第三天
end_time.start = convertDate2String(adjustDate(cur, 60*60*24*2));
// 將結(jié)束日的終止值設(shè)定為開(kāi)始日的第三十天,日期范圍為一個(gè)月
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);
// 結(jié)束日選好后,重置開(kāi)始日的最大日期為前第一天
start_time.max = convertDate2String(adjustDate(cur, -60*60*24));
// 將起始日的初始值設(shè)定為結(jié)束日的前第三十天
start_time.start = convertDate2String(adjustDate(cur, -60*60*24*30));
// 將起始日的起始日期設(shè)定為結(jié)束日的前第三十天,日期范圍為一個(gè)月
start_time.min = convertDate2String(adjustDate(cur, -60*60*24*30));
}
};
laydate(start_time);
laydate(end_time);
</script>
</body>
</html>
page.css 對(duì)應(yīng)的源碼為:
*{
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 函數(shù)對(duì)應(yīng)的源碼如下:

convertDate2String 函數(shù)對(duì)應(yīng)的源碼如下:

adjustDate 函數(shù)對(duì)應(yīng)的源碼如下:

運(yùn)行結(jié)果如下所示:

至此,HTML-001-日期組件 layDate 演示順利完結(jié),希望此文能夠給初學(xué) HTML 的您一份參考。
最后,非常感謝親的駐足,希望此文能對(duì)親有所幫助。熱烈歡迎親一起探討,共同進(jìn)步。非常感謝!
如果大家還想深入學(xué)習(xí),可以點(diǎn)擊這里進(jìn)行學(xué)習(xí),再為大家附3個(gè)精彩的專(zhuān)題:
以上就是本文的全部?jī)?nèi)容,希望大家多多支持腳本之家。
相關(guān)文章
js中的關(guān)聯(lián)數(shù)組與普通數(shù)組詳解
下面小編就為大家?guī)?lái)一篇js中的關(guān)聯(lián)數(shù)組與普通數(shù)組詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07
JavaScript計(jì)劃任務(wù)后臺(tái)運(yùn)行的方法
這篇文章主要介紹了JavaScript計(jì)劃任務(wù)后臺(tái)運(yùn)行的方法,需要的朋友可以參考下2015-12-12
ImageZoom 圖片放大鏡效果(多功能擴(kuò)展篇)
上一篇ImageZoom已經(jīng)對(duì)圖片放大效果做了詳細(xì)的分析,這次在ImageZoom的基礎(chǔ)上進(jìn)行擴(kuò)展,實(shí)現(xiàn)更多的效果。2010-04-04
JavaScript中變量提升和函數(shù)提升實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于JavaScript中變量提升和函數(shù)提升的相關(guān)資料,以及JS變量提升和函數(shù)提升的順序,文中給出了詳細(xì)的介紹,需要的朋友可以參考下2021-07-07
Bootstrap顯示與隱藏簡(jiǎn)單實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了bootstrap顯示與隱藏的簡(jiǎn)單實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03

