效果圖
在介紹jquery datetimepicker的使用方法前,我們先來看一下它的實現效果圖,這樣以便讓你更快地了解它是否是你所需要的。
下面我截了四張常用的效果圖(截取自http://xdsoft.net/jqplugins/datetimepicker ),另外在這里我只總結了幾個常用的功能,如果你正在使用該控件,而本文沒有寫到的,請到上面網站上查看使用方法。
使用方法
添加引用
<link type="text/css" href="css/jquery.datetimepicker.css" rel="stylesheet" /> <script type="text/javascript" src="js/jquery.js"></script> <script type ="text/javascript" src="js/jquery.datetimepicker.js"></script>
HTML
<input id="datetimepicker" type="text" >
javaScript
$('#datetimepicker').datetimepicker();
按以上步驟我們就實現jquery datetimepicker的使用,當然這只是最基本的樣式,另外jquery datetimepicker的樣式控制是通過傳一個json對象的參數給datetimepicker來實現的。下面我們舉個例子來看下:
$("#start").datetimepicker({ format: 'Y/m/d', timepicker: false });
上面傳入的參數就是用來設置顯示日期的格式,以及彈出層只能選擇日期,而不能選擇時間。那我們接下來總結一下它常用的一些參數及其作用。
常用參數
名稱 | 默認值 | 描述 | 例子 |
value | null | 設置值 | |
lang | en | 設置樣式顯示語言, 中文:ch\zh\zh-TW |
{lang:'zh'} |
format | Y/m/d H:i | 日期格式(參考網站) | |
timepicker | true | 顯示時間選擇部分 | |
datepicker | true | 顯示日期選擇部分 | {datepicker:false} |
weeks | false | 顯示周數 | {weeks:true} |
theme | 'default' | 皮膚樣式 | |
minDate | false | 設置可選擇的最小日期(只有日期格式不包含時間部分才效) |
|
maxDate | false | {maxDate:0} |
|
minTime | false | |
|
maxTime | false | ||
allowTimes | [] | 可供選擇的時間點 | |
mask | false | {mask:'9999/19/39',format:'Y/m/d'} |
|
yearOffset | 0 | 默認年分偏移值 | {yearOffset:1} |
inline | false | 是否直接顯示日歷控件 | |
todayButton | true | 是否顯示"跳轉至今天“的按鈕 | |
defaultSelect | true | 當input為空時,高亮顯示現在的日期或時間 |
|
validateOnBlur | true | 當控件失去焦點時,驗證其值,如果沒選擇有效日期,則設置為現在的日期。 |
|
allowBlank | false | 是否允許設為空,即使validateOnBlur設置true,一樣有效 |
|
onSelectDate | function(current_time ,$input){} |
|
|
onSelectTime | function(current_time ,$input){} |
|
|
onShow | function(current_time ,$input){} |
||
hours12 | false | 12小時制 | |
yearStart | 1950 | 可選擇的最小年份 | |
yearEnd | 2050 | 可選擇的最大年份 | |
roundTime | round | 針對timepicker,可選擇值: round, ceil, floor |
|
dayOfWeekStart | 0 | ||
disabledDates | [] | |
|
allowDates | [] | ||
allowDateRe | [] | 使用正則表達式 |
|
一種常用場景下的封裝
在我們使用日期控件時有一種常用的場景,就是有一個開始時間和結束時間,而正常情況下開始時間不能晚於結束時間,也有一些情況下,開始時間是不能晚於今天。所以我封裝了這個功能:
1 var modal = (function() { 2 var initDate = function(startDateTimeId,endDateTimeId) { 3 var startDate; 4 var endDate; 5 startDateTimeId="#"+startDateTimeId; 6 endDateTimeId="#"+endDateTimeId; 7 $(startDateTimeId).datetimepicker({ 8 format: 'Y-m-d H:m', 9 minDate: 0, 10 onChangeDateTime: function(dp, $input) { 11 startDate = $(startDateTimeId).val(); 12 }, 13 onClose: function(current_time, $input) { 14 if (startDate > endDate) { 15 $(startDateTimeId).val(endDate); 16 startDate=endDate; 17 } 18 } 19 }); 20 $(endDateTimeId).datetimepicker({ 21 format: 'Y-m-d H:m', 22 onClose: function(current_time, $input) { 23 endDate = $(endDateTimeId).val(); 24 if (startDate > endDate) { 25 $(endDateTimeId).val(startDate); 26 endDate=startDate; 27 } 28 } 29 }); 30 }; 31 return { 32 initDate: initDate 33 };34 35 })();
js
//初始化開始時間與結束時間控件 modal.initDate("startdate","enddate");
HTML
<label>開始時間:</label> <input id="startdate" type="text" placeholder="YYYY-MM-DD HH:MM:SS" /> <label>結束時間</label> <input id="enddate" type="text" placeholder="YYYY-MM-DD HH:MM:SS" />
結束語
在網上下載的js文件,在我本地測試時是有問題的,所以我把我現在正在用的js文件上傳一份在這里,如果你有需要的話可以在這里下載。