jQuery日期和时间插件DateTimePicker js代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 jQuery日期和时间插件DateTimePicker js代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图:

jQuery日期和时间插件DateTimePicker js代码

HTML代码(index.html):

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312"/>
<title>jQuery日期和时间插件DateTimePicker</title>
<link rel="stylesheet" type="text/css" href="./jquery.datetimepicker.css"/>
</head>
<body>
    <h3>DateTimePicker</h3>
    <input type="text" value="2014/03/15 05:06" id="datetimepicker" /><br><br>
    <h3>Mask DateTimePicker</h3>
    <input type="text" value="" id="datetimepicker_mask" /><br><br>
    <h3>TimePicker</h3>
    <input type="text" id="datetimepicker1" /><br><br>
    <h3>DatePicker</h3>
    <input type="text" id="datetimepicker2" /><br><br>
    <h3>Inline DateTimePicker</h3>
    <input type="text" id="datetimepicker3" /><input type="button" onclick="$('#datetimepicker3').datetimepicker({value:'2011/12/11 12:00'})" value="set inline value 2011/12/11 12:00" /><br><br>
    <h3>Button Trigger</h3>
    <input type="text" value="2013/12/03 18:00" id="datetimepicker4" /><input id="open" type="button" value="open" /><input id="close" type="button" value="close" /><input id="reset" type="button" value="reset" />
    <h3>TimePicker allows time</h3>
    <input type="text" id="datetimepicker5" /><br><br>
    <h3>Destroy DateTimePicker</h3>
    <input type="text" id="datetimepicker6" /><input id="destroy" type="button" value="destroy" />
    <h3>Set options runtime DateTimePicker</h3>
    <input type="text" id="datetimepicker7" />
    <p>If select day is Saturday, the minimum set 11:00, otherwise 8:00</p>
    <h3>onGenerate</h3>
    <input type="text" id="datetimepicker8" />
    <h3>disable all weekend</h3>
    <input type="text" id="datetimepicker9" />
    <h3>Show inline</h3>
    <a href="javascript:var si = document.getElementById('show_inline').style; si.display = (si.display=='none')?'block':'none';return false; ">Show/Hide</a>
    <div id="show_inline" style="display:none">
        <input type="text" id="datetimepicker10" />
    </div>
    <script src="./jquery.js"></script>
    <script src="./jquery.datetimepicker.js"></script>
    <script>

        $('#datetimepicker10').datetimepicker({
            step: 5,
            inline: true
        });
        $('#datetimepicker_mask').datetimepicker({
            mask: '9999/19/39 29:59'
        });
        $('#datetimepicker').datetimepicker();
        $('#datetimepicker').datetimepicker({ value: '2015/04/15 05:03', step: 10 });
        $('#datetimepicker1').datetimepicker({
            datepicker: false,
            format: 'H:i',
            step: 5
        });
        $('#datetimepicker2').datetimepicker({
            yearOffset: 222,
            lang: 'ch',
            timepicker: false,
            format: 'd/m/Y',
            formatDate: 'Y/m/d',
            minDate: '-1970/01/02', // yesterday is minimum date
            maxDate: '+1970/01/02' // and tommorow is maximum date calendar
        });
        $('#datetimepicker3').datetimepicker({
            inline: true
        });
        $('#datetimepicker4').datetimepicker();
        $('#open').click(function () {
            $('#datetimepicker4').datetimepicker('show');
        });
        $('#close').click(function () {
            $('#datetimepicker4').datetimepicker('hide');
        });
        $('#reset').click(function () {
            $('#datetimepicker4').datetimepicker('reset');
        });
        $('#datetimepicker5').datetimepicker({
            datepicker: false,
            allowTimes: ['12:00', '13:00', '15:00', '17:00', '17:05', '17:20', '19:00', '20:00']
        });
        $('#datetimepicker6').datetimepicker();
        $('#destroy').click(function () {
            if ($('#datetimepicker6').data('xdsoft_datetimepicker')) {
                $('#datetimepicker6').datetimepicker('destroy');
                this.value = 'create';
            } else {
                $('#datetimepicker6').datetimepicker();
                this.value = 'destroy';
            }
        });
        var logic = function (currentDateTime) {
            if (currentDateTime.getDay() == 6) {
                this.setOptions({
                    minTime: '11:00'
                });
            } else
                this.setOptions({
                    minTime: '8:00'
                });
        };
        $('#datetimepicker7').datetimepicker({
            onChangeDateTime: logic,
            onShow: logic
        });
        $('#datetimepicker8').datetimepicker({
            onGenerate: function (ct) {
                $(this).find('.xdsoft_date')
                    .toggleClass('xdsoft_disabled');
            },
            minDate: '-1970/01/2',
            maxDate: '+1970/01/2',
            timepicker: false
        });
        $('#datetimepicker9').datetimepicker({
            onGenerate: function (ct) {
                $(this).find('.xdsoft_date.xdsoft_weekend')
                    .addClass('xdsoft_disabled');
            },
            weekends: ['01.01.2014', '02.01.2014', '03.01.2014', '04.01.2014', '05.01.2014', '06.01.2014'],
            timepicker: false
        });
    </script>
</body>
</html>








JS代码(jquery.datetimepicker.js):

/** * @preserve jQuery DateTimePicker plugin v2.1.9 * @homepage http://xdsoft.net/jqplugins/datetimepicker/ * (c) 2014,Chupurnov Valeriy. */
(function( $ ){
	'use strict'var default_options ={
	i18n:{
	ru:{
	// Russianmonths:['携薪胁邪褉褜','肖械胁褉邪谢褜','袦邪褉褌','袗锌褉械谢褜','袦邪泄','袠褞薪褜','袠褞谢褜','袗胁谐褍褋褌','小械薪褌褟斜褉褜','袨泻褌褟斜褉褜','袧芯褟斜褉褜','袛械泻邪斜褉褜'],dayOfWeek:["袙褋泻","袩薪","袙褌","小褉","效褌","袩褌","小斜"]}
,en:{
	// Englishmonths:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeek:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}
,de:{
	// Germanmonths:['Januar','Februar','M盲rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],dayOfWeek:["So","Mo","Di","Mi","Do","Fr","Sa"]}
,nl:{
	// Dutchmonths:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],dayOfWeek:["zo","ma","di","wo","do","vr","za"]}
,tr:{
	// Turkishmonths:["Ocak","艦ubat","Mart","Nisan","May谋s","Haziran","Temmuz","A臒ustos","Eyl眉l","Ekim","Kas谋m","Aral谋k"],dayOfWeek:["Paz","Pts","Sal","脟ar","Per","Cum","Cts"]}
,fr:{
	//Frenchmonths:[ "Janvier","F茅vrier","Mars","Avril","Mai","Juin","Juillet","Ao没t","Septembre","Octobre","Novembre","D茅cembre"],dayOfWeek:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"]}
,es:{
	// Spanishmonths:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],dayOfWeek:["Dom","Lun","Mar","Mi茅","Jue","Vie","S谩b"]}
,th:{
	// Thaimonths:['喔∴竵喔`覆喔勦浮','喔佮父喔∴笭喔侧笧喔编笝喔樴箤','喔∴傅喔權覆喔勦浮','喙€喔∴俯喔侧涪喔?,'喔炧袱喔┼笭喔侧竸喔?,'喔∴复喔栢父喔權覆喔⑧笝','喔佮福喔佮笌喔侧竸喔?,'喔复喔囙斧喔侧竸喔?,'喔佮副喔權涪喔侧涪喔?,'喔曕父喔ム覆喔勦浮','喔炧袱喔ㄠ笀喔脆竵喔侧涪喔?,'喔樴副喔權抚喔侧竸喔?],dayOfWeek:['喔覆.','喔?','喔?','喔?','喔炧袱.','喔?','喔?']}
,pl:{
	// Polishmonths:["stycze艅","luty","marzec","kwiecie艅","maj","czerwiec","lipiec","sierpie艅","wrzesie艅","pa藕dziernik","listopad","grudzie艅"],dayOfWeek:["nd","pn","wt","艣r","cz","pt","sb"]}
,pt:{
	// Portuguesemonths:["Janeiro","Fevereiro","Mar莽o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeek:["Dom","Seg","Ter","Qua","Qui","Sex","Sab"]}
,ch:{
	// Simplified Chinesemonths:["涓€鏈?,"浜屾湀","涓夋湀","鍥涙湀","浜旀湀","鍏湀","涓冩湀","鍏湀","涔濇湀","鍗佹湀","鍗佷竴鏈?,"鍗佷簩鏈?],dayOfWeek:["鏃?,"涓€","浜?,"涓?,"鍥?,"浜?,"鍏?]}
,se:{
	// Swedishmonths:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeek:["S枚n","M氓n","Tis","Ons","Tor","Fre","L枚r"]}
,kr:{
	// Koreanmonths:[ "1鞗?,"2鞗?,"3鞗?,"4鞗?,"5鞗?,"6鞗?,"7鞗?,"8鞗?,"9鞗?,"10鞗?,"11鞗?,"12鞗?],dayOfWeek:[ "鞚?,"鞗?,"頇?,"靾?,"氇?,"旮?,"韱?]}
,it:{
	// Italianmonths:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],dayOfWeek:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"]}
}
,value:'',lang:'en',format:'Y/m/d H:i',formatTime:'H:i',formatDate:'Y/m/d',step:60,closeOnDateSelect:0,closeOnWithoutClick:true,timepicker:true,datepicker:true,minDate:false,maxDate:false,minTime:false,maxTime:false,allowTimes:[],opened:false,inline:false,onSelectDate:function(){
}
,onSelectTime:function(){
}
,onChangeMonth:function(){
}
,onChangeDateTime:function(){
}
,onShow:function(){
}
,onClose:function(){
}
,onGenerate:function(){
}
,withoutCopyright:true,inverseButton:false,hours12:false,next:'xdsoft_next',prev:'xdsoft_prev',dayOfWeekStart:0,timeHeightInTimePicker:25,timepickerScrollbar:true,todayButton:true,// 2.1.0defaultSelect:true,// 2.1.0scrollMonth:true,scrollTime:true,scrollInput:true,mask:false,validateOnBlur:true,allowBlank:false,yearStart:1950,yearEnd:2050,style:'',id:'',roundTime:'round',// ceil,floorclassName:'',weekends:[],yearOffset:0}
;
	// fix for ie8if ( !Array.prototype.indexOf ){
	Array.prototype.indexOf = function(obj,start){
	for (var i = (start || 0),j = this.length;
	i < j;
	i++){
	if (this[i] === obj){
	return i;
}
}
return -1;
}
}
;
	$.fn.xdsoftScroller = function( _percent ){
	return this.each(function(){
	var timeboxparent = $(this);
	if( !$(this).hasClass('xdsoft_scroller_box') ){
	var pointerEventToXY = function( e ){
	var out ={
	x:0,y:0}
;
	if( e.type == 'touchstart' || e.type == 'touchmove' || e.type == 'touchend' || e.type == 'touchcancel' ){
	var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
	out.x = touch.pageX;
	out.y = touch.pageY;
}
else if (e.type == 'mousedown' || e.type == 'mouseup' || e.type == 'mousemove' || e.type == 'mouseover'|| e.type=='mouseout' || e.type=='mouseenter' || e.type=='mouseleave'){
	out.x = e.pageX;
	out.y = e.pageY;
}
return out;
}
,move = 0,timebox = timeboxparent.children().eq(0),parentHeight = timeboxparent[0].clientHeight,height = timebox[0].offsetHeight,scrollbar = $('<div class="xdsoft_scrollbar"></div>'),scroller = $('<div class="xdsoft_scroller"></div>'),maximumOffset = 100,start = false;
	scrollbar.append(scroller);
	timeboxparent.addClass('xdsoft_scroller_box').append(scrollbar);
	scroller.on('mousedown.xdsoft_scroller',function ( event ){
	if( !parentHeight )timeboxparent.trigger('resize_scroll.xdsoft_scroller',[_percent]);
	var pageY = event.pageY,top = parseInt(scroller.css('margin-top')),h1 = scrollbar[0].offsetHeight;
	$(document.body).addClass('xdsoft_noselect');
	$([document.body,window]).on('mouseup.xdsoft_scroller',function arguments_callee(){
	$([document.body,window]).off('mouseup.xdsoft_scroller',arguments_callee).off('mousemove.xdsoft_scroller',move).removeClass('xdsoft_noselect');
}
);
	$(document.body).on('mousemove.xdsoft_scroller',move = function(event){
	var offset = event.pageY-pageY+top;
	if( offset<0 )offset = 0;
	if( offset+scroller[0].offsetHeight>h1 )offset = h1-scroller[0].offsetHeight;
	timeboxparent.trigger('scroll_element.xdsoft_scroller',[maximumOffset?offset/maximumOffset:0]);
}
);
}
);
	timeboxparent.on('scroll_element.xdsoft_scroller',function( event,percent ){
	if( !parentHeight )timeboxparent.trigger('resize_scroll.xdsoft_scroller',[percent,true]);
	percent = percent>1?1:(percent<0||isNaN(percent))?0:percent;
	scroller.css('margin-top',maximumOffset*percent);
	timebox.css('marginTop',-parseInt((height-parentHeight)*percent))}
).on('resize_scroll.xdsoft_scroller',function( event,_percent,noTriggerScroll ){
	parentHeight = timeboxparent[0].clientHeight;
	height = timebox[0].offsetHeight;
	var percent = parentHeight/height,sh = percent*scrollbar[0].offsetHeight;
	if( percent>1 )scroller.hide();
	else{
	scroller.show();
	scroller.css('height',parseInt(sh>10?sh:10));
	maximumOffset = scrollbar[0].offsetHeight-scroller[0].offsetHeight;
	if( noTriggerScroll!==true )timeboxparent.trigger('scroll_element.xdsoft_scroller',[_percent?_percent:Math.abs(parseInt(timebox.css('marginTop')))/(height-parentHeight)]);
}
}
);
	timeboxparent.mousewheel&&timeboxparent.mousewheel(function(event,delta,deltaX,deltaY){
	var top = Math.abs(parseInt(timebox.css('marginTop')));
	timeboxparent.trigger('scroll_element.xdsoft_scroller',[(top-delta*20)/(height-parentHeight)]);
	event.stopPropagation();
	return false;
}
);
	timeboxparent.on('touchstart',function( event ){
	start = pointerEventToXY(event);
}
);
	timeboxparent.on('touchmove',function( event ){
	if( start ){
	var coord = pointerEventToXY(event),top = Math.abs(parseInt(timebox.css('marginTop')));
	timeboxparent.trigger('scroll_element.xdsoft_scroller',[(top-(coord.y-start.y))/(height-parentHeight)]);
	event.stopPropagation();
	event.preventDefault();
}
;
}
);
	timeboxparent.on('touchend touchcancel',function( event ){
	start = false;
}
);
}
timeboxparent.trigger('resize_scroll.xdsoft_scroller',[_percent]);
}
);
}
;
	$.fn.datetimepicker = function( opt ){
	var KEY0 = 48,KEY9 = 57,_KEY0 = 96,_KEY9 = 105,CTRLKEY = 17,DEL = 46,ENTER = 13,ESC = 27,BACKSPACE = 8,ARROWLEFT = 37,ARROWUP = 38,ARROWRIGHT = 39,ARROWDOWN = 40,TAB = 9,F5 = 116,AKEY = 65,CKEY = 67,VKEY = 86,ZKEY = 90,YKEY = 89,ctrlDown=false,options = ($.isPlainObject(opt)||!opt)?$.extend(true,{
}
,default_options,opt):$.extend({
}
,default_options),createDateTimePicker = function( input ){
	var datetimepicker = $('<div '+(options.id?'id="'+options.id+'"':'')+' '+(options.style?'style="'+options.style+'"':'')+' class="xdsoft_datetimepicker xdsoft_noselect '+options.className+'"></div>'),xdsoft_copyright = $('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),datepicker = $('<div class="xdsoft_datepicker active"></div>'),mounth_picker = $('<div class="xdsoft_mounthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button><div class="xdsoft_label xdsoft_month"><span></span></div><div class="xdsoft_label xdsoft_year"><span></span></div><button type="button" class="xdsoft_next"></button></div>'),calendar = $('<div class="xdsoft_calendar"></div>'),timepicker = $('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),timeboxparent = timepicker.find('.xdsoft_time_box').eq(0),timebox = $('<div class="xdsoft_time_variant"></div>'),scrollbar = $('<div class="xdsoft_scrollbar"></div>'),scroller = $('<div class="xdsoft_scroller"></div>'),monthselect =$('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),yearselect =$('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>');
	//constructor legomounth_picker.find('.xdsoft_month span').after(monthselect);
	mounth_picker.find('.xdsoft_year span').after(yearselect);
	mounth_picker.find('.xdsoft_month,.xdsoft_year').on('mousedown.xdsoft',function(event){
	mounth_picker.find('.xdsoft_select').hide();
	var select = $(this).find('.xdsoft_select').eq(0),val = 0,top = 0;
	if( _xdsoft_datetime.currentTime )val = _xdsoft_datetime.currentTime[$(this).hasClass('xdsoft_month')?'getMonth':'getFullYear']();
	select.show();
	for(var items = select.find('div.xdsoft_option'),i = 0;
	i<items.length;
	i++){
	if( items.eq(i).data('value')==val ){
	break;
}
else top+=items[0].offsetHeight;
}
select.xdsoftScroller(top/(select.children()[0].offsetHeight-(select[0].clientHeight)));
	event.stopPropagation();
	return false;
}
);
	mounth_picker.find('.xdsoft_select').xdsoftScroller().on('mousedown.xdsoft',function( event ){
	event.stopPropagation();
	event.preventDefault();
}
).on('mousedown.xdsoft','.xdsoft_option',function( event ){
	if( _xdsoft_datetime&&_xdsoft_datetime.currentTime )_xdsoft_datetime.currentTime[$(this).parent().parent().hasClass('xdsoft_monthselect')?'setMonth':'setFullYear']($(this).data('value'));
	$(this).parent().parent().hide();
	datetimepicker.trigger('xchange.xdsoft');
	options.onChangeMonth&&options.onChangeMonth.call&&options.onChangeMonth.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input'));
}
);
	// set optionsdatetimepicker.setOptions = function( _options ){
	options = $.extend(true,{
}
,options,_options);
	if( (options.open||options.opened)&&(!options.inline) ){
	input.trigger('open.xdsoft');
}
if( options.inline ){
	datetimepicker.addClass('xdsoft_inline');
	input.after(datetimepicker).hide();
	datetimepicker.trigger('afterOpen.xdsoft');
}
if( options.inverseButton ){
	options.next = 'xdsoft_prev';
	options.prev = 'xdsoft_next';
}
if( options.datepicker )datepicker.addClass('active');
	elsedatepicker.removeClass('active');
	if( options.timepicker )timepicker.addClass('active');
	elsetimepicker.removeClass('active');
	if( options.value ){
	input&&input.val&&input.val(options.value);
	_xdsoft_datetime.setCurrentTime(options.value);
}
if( isNaN(options.dayOfWeekStart)||parseInt(options.dayOfWeekStart)<0||parseInt(options.dayOfWeekStart)>6 )options.dayOfWeekStart = 0;
	elseoptions.dayOfWeekStart = parseInt(options.dayOfWeekStart);
	if( !options.timepickerScrollbar )scrollbar.hide();
	var tmpDate = [],timeOffset;
	if( options.minDate && ( tmpDate = /^-(.*)$/.exec(options.minDate) ) && (tmpDate=Date.parseDate(tmpDate[1],options.formatDate)) ){
	timeOffset = tmpDate.getTime()+-1*(tmpDate.getTimezoneOffset())*60000;
	options.minDate = new Date((_xdsoft_datetime.now()).getTime()-timeOffset).dateFormat( options.formatDate );
}
if( options.maxDate && ( tmpDate = /^\+(.*)$/.exec(options.maxDate) ) && (tmpDate=Date.parseDate(tmpDate[1],options.formatDate)) ){
	timeOffset = tmpDate.getTime()+-1*(tmpDate.getTimezoneOffset())*60000;
	options.maxDate = new Date((_xdsoft_datetime.now()).getTime()+timeOffset).dateFormat( options.formatDate );
}
mounth_picker.find('.xdsoft_today_button').css('visibility',!options.todayButton?'hidden':'visible');
	if( options.mask ){
	var e,getCaretPos = function ( input ){
	try{
	if ( document.selection && document.selection.createRange ){
	var range = document.selection.createRange();
	return range.getBookmark().charCodeAt(2) - 2;
}
elseif ( input.setSelectionRange )return input.selectionStart;
}
catch(e){
	return 0;
}
}
,setCaretPos = function ( node,pos ){
	var node = (typeof node == "string" || node instanceof String) ? document.getElementById(node):node;
	if(!node){
	return false;
}
else if(node.createTextRange){
	var textRange = node.createTextRange();
	textRange.collapse(true);
	textRange.moveEnd(pos);
	textRange.moveStart(pos);
	textRange.select();
	return true;
}
else if(node.setSelectionRange){
	node.setSelectionRange(pos,pos);
	return true;
}
return false;
}
,isValidValue = function ( mask,value ){
	var reg = mask.replace(/([\[\]\/\{
	\}
\(\)\-\.\+]{
	1}
)/g,'\\$1').replace(/_/g,'{
	digit+}
').replace(/([0-9]{
	1}
)/g,'{
	digit$1}
').replace(/\{
	digit([0-9]{
	1}
)\}
/g,'[0-$1_]{
	1}
').replace(/\{
	digit[\+]\}
/g,'[0-9_]{
	1}
');
	return RegExp(reg).test(value);
}
;
	input.off('keydown.xdsoft');
	switch(true){
	case ( options.mask===true )://options.mask = (new Date()).dateFormat( options.format );
	//options.mask = options.mask.replace(/[0-9]/g,'_');
	options.mask = options.format.replace(/Y/g,'9999').replace(/F/g,'9999').replace(/m/g,'19').replace(/d/g,'39').replace(/H/g,'29').replace(/i/g,'59').replace(/s/g,'59');
	case ( $.type(options.mask) == 'string' ):if( !isValidValue( options.mask,input.val() ) )input.val(options.mask.replace(/[0-9]/g,'_'));
	input.on('keydown.xdsoft',function( event ){
	var val = this.value,key = event.which;
	switch(true){
	case (( key>=KEY0&&key<=KEY9 )||( key>=_KEY0&&key<=_KEY9 ))||(key==BACKSPACE||key==DEL):var pos = getCaretPos(this),digit = ( key!=BACKSPACE&&key!=DEL )?String.fromCharCode((_KEY0 <= key && key <= _KEY9)? key-KEY0:key):'_';
	if( (key==BACKSPACE||key==DEL)&&pos ){
	pos--;
	digit='_';
}
while( /[^0-9_]/.test(options.mask.substr(pos,1))&&pos<options.mask.length&&pos>0 )pos+=( key==BACKSPACE||key==DEL )?-1:1;
	val = val.substr(0,pos)+digit+val.substr(pos+1);
	if( $.trim(val)=='' )val = options.mask.replace(/[0-9]/g,'_');
	elseif( pos==options.mask.length )break;
	pos+=(key==BACKSPACE||key==DEL)?0:1;
	while( /[^0-9_]/.test(options.mask.substr(pos,1))&&pos<options.mask.length&&pos>0 )pos+=(key==BACKSPACE||key==DEL)?-1:1;
	if( isValidValue( options.mask,val ) ){
	this.value = val;
	setCaretPos(this,pos);
}
else if( $.trim(val)=='' )this.value = options.mask.replace(/[0-9]/g,'_');
	else{
	input.trigger('error_input.xdsoft');
}
break;
	case ( !!~([AKEY,CKEY,VKEY,ZKEY,YKEY].indexOf(key))&&ctrlDown ):case !!~([ESC,ARROWUP,ARROWDOWN,ARROWLEFT,ARROWRIGHT,F5,CTRLKEY,TAB,ENTER].indexOf(key)):return true;
}
event.preventDefault();
	return false;
}
);
	break;
}
}
if( options.validateOnBlur ){
	input.off('blur.xdsoft').on('blur.xdsoft',function(){
	if( options.allowBlank && !$.trim($(this).val()).length ){
	$(this).val(null);
	datetimepicker.data('xdsoft_datetime').empty();
}
else if( !Date.parseDate( $(this).val(),options.format ) ){
	$(this).val((_xdsoft_datetime.now()).dateFormat( options.format ));
	datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
}
else{
	datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
}
datetimepicker.trigger('changedatetime.xdsoft');
}
);
}
options.dayOfWeekStartPrev = (options.dayOfWeekStart==0)?6:options.dayOfWeekStart-1;
	datetimepicker.trigger('xchange.xdsoft');
}
;
	datetimepicker.data('options',options).on('mousedown.xdsoft',function( event ){
	event.stopPropagation();
	event.preventDefault();
	yearselect.hide();
	monthselect.hide();
	return false;
}
);
	var scroll_element = timepicker.find('.xdsoft_time_box');
	scroll_element.append(timebox);
	scroll_element.xdsoftScroller();
	datetimepicker.on('afterOpen.xdsoft',function(){
	scroll_element.xdsoftScroller();
}
);
	datetimepicker.append(datepicker).append(timepicker);
	if( options.withoutCopyright!==true )datetimepicker.append(xdsoft_copyright);
	datepicker.append(mounth_picker).append(calendar);
	$('body').append(datetimepicker);
	var _xdsoft_datetime = new function(){
	var _this = this;
	_this.now = function(){
	var d = new Date();
	if( options.yearOffset )d.setFullYear(d.getFullYear()+options.yearOffset);
	return d;
}
;
	_this.currentTime = this.now();
	_this.isValidDate = function (d){
	if ( Object.prototype.toString.call(d) !== "[object Date]" )return false;
	return !isNaN(d.getTime());
}
;
	_this.setCurrentTime = function( dTime){
	_this.currentTime = (typeof dTime == 'string')? _this.strtodatetime(dTime):_this.isValidDate(dTime) ? dTime:_this.now();
	datetimepicker.trigger('xchange.xdsoft');
}
;
	_this.empty = function(){
	_this.currentTime = null;
}
;
	_this.getCurrentTime = function( dTime){
	return _this.currentTime;
}
;
	_this.nextMonth = function(){
	var month = _this.currentTime.getMonth()+1;
	if( month==12 ){
	_this.currentTime.setFullYear(_this.currentTime.getFullYear()+1);
	month = 0;
}
_this.currentTime.setDate(Math.min(Date.daysInMonth[month],_this.currentTime.getDate()))_this.currentTime.setMonth(month);
	options.onChangeMonth&&options.onChangeMonth.call&&options.onChangeMonth.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input'));
	datetimepicker.trigger('xchange.xdsoft');
	return month;
}
;
	_this.prevMonth = function(){
	var month = _this.currentTime.getMonth()-1;
	if( month==-1 ){
	_this.currentTime.setFullYear(_this.currentTime.getFullYear()-1);
	month = 11;
}
_this.currentTime.setDate(Math.min(Date.daysInMonth[month],_this.currentTime.getDate()))_this.currentTime.setMonth(month);
	options.onChangeMonth&&options.onChangeMonth.call&&options.onChangeMonth.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input'));
	datetimepicker.trigger('xchange.xdsoft');
	return month;
}
;
	_this.strtodatetime = function( sDateTime ){
	var currentTime = sDateTime?Date.parseDate(sDateTime,options.format):_this.now();
	if( !_this.isValidDate(currentTime) )currentTime = _this.now();
	return currentTime;
}
;
	_this.strtodate = function( sDate ){
	var currentTime = sDate?Date.parseDate(sDate,options.formatDate):_this.now();
	if( !_this.isValidDate(currentTime) )currentTime = _this.now();
	return currentTime;
}
;
	_this.strtotime = function( sTime ){
	var currentTime = sTime?Date.parseDate(sTime,options.formatTime):_this.now();
	if( !_this.isValidDate(currentTime) )currentTime = _this.now();
	return currentTime;
}
;
	_this.str = function(){
	return _this.currentTime.dateFormat(options.format);
}
;
}
;
	mounth_picker.find('.xdsoft_today_button').on('mousedown.xdsoft',function(){
	datetimepicker.data('changed',true);
	_xdsoft_datetime.setCurrentTime(0);
	datetimepicker.trigger('afterOpen.xdsoft');
}
).on('dblclick.xdsoft',function(){
	input.val( _xdsoft_datetime.str() );
	datetimepicker.trigger('close.xdsoft');
}
);
	mounth_picker.find('.xdsoft_prev,.xdsoft_next').on('mousedown.xdsoft',function(){
	var $this = $(this),timer = 0,stop = false;
	(function arguments_callee1(v){
	var month = _xdsoft_datetime.currentTime.getMonth();
	if( $this.hasClass( options.next ) ){
	_xdsoft_datetime.nextMonth();
}
else if( $this.hasClass( options.prev ) ){
	_xdsoft_datetime.prevMonth();
}
!stop&&(timer = setTimeout(arguments_callee1,v?v:100));
}
)(500);
	$([document.body,window]).on('mouseup.xdsoft',function arguments_callee2(){
	clearTimeout(timer);
	stop = true;
	$([document.body,window]).off('mouseup.xdsoft',arguments_callee2);
}
);
}
);
	timepicker.find('.xdsoft_prev,.xdsoft_next').on('mousedown.xdsoft',function(){
	var $this = $(this),timer = 0,stop = false,period = 110;
	(function arguments_callee4(v){
	var pheight = timeboxparent[0].clientHeight,height = timebox[0].offsetHeight,top = Math.abs(parseInt(timebox.css('marginTop')));
	if( $this.hasClass(options.next) && (height-pheight)- options.timeHeightInTimePicker>=top ){
	timebox.css('marginTop','-'+(top+options.timeHeightInTimePicker)+'px')}
else if( $this.hasClass(options.prev) && top-options.timeHeightInTimePicker>=0 ){
	timebox.css('marginTop','-'+(top-options.timeHeightInTimePicker)+'px')}
timeboxparent.trigger('scroll_element.xdsoft_scroller',[Math.abs(parseInt(timebox.css('marginTop'))/(height-pheight))]);
	period= ( period>10 )?10:period-10;
	!stop&&(timer = setTimeout(arguments_callee4,v?v:period));
}
)(500);
	$([document.body,window]).on('mouseup.xdsoft',function arguments_callee5(){
	clearTimeout(timer);
	stop = true;
	$([document.body,window]).off('mouseup.xdsoft',arguments_callee5);
}
);
}
);
	// base handler - generating a calendar and timepickerdatetimepicker.on('xchange.xdsoft',function( event ){
	var table='',start= new Date(_xdsoft_datetime.currentTime.getFullYear(),_xdsoft_datetime.currentTime.getMonth(),1,12,0,0),i = 0,today = _xdsoft_datetime.now();
	while( start.getDay()!=options.dayOfWeekStart )start.setDate(start.getDate()-1);
	//generate calendartable+='<table><thead><tr>';
	// daysfor(var j = 0;
	j<7;
	j++){
	table+='<th>'+options.i18n[options.lang].dayOfWeek[(j+options.dayOfWeekStart)>6?0:j+options.dayOfWeekStart]+'</th>';
}
table+='</tr></thead>';
	table+='<tbody><tr>';
	var maxDate = false,minDate = false;
	if( options.maxDate!==false ){
	maxDate = _xdsoft_datetime.strtodate(options.maxDate);
	maxDate = new Date(maxDate.getFullYear(),maxDate.getMonth(),maxDate.getDate(),23,59,59,999);
}
if( options.minDate!==false ){
	minDate = _xdsoft_datetime.strtodate(options.minDate);
	minDate = new Date(minDate.getFullYear(),minDate.getMonth(),minDate.getDate());
}
var d,y,m,classes = [];
	while( i<_xdsoft_datetime.currentTime.getDaysInMonth()||start.getDay()!=options.dayOfWeekStart||_xdsoft_datetime.currentTime.getMonth()==start.getMonth() ){
	classes = [];
	i++;
	d = start.getDate();
	y = start.getFullYear();
	m = start.getMonth();
	classes.push('xdsoft_date');
	if( ( maxDate!==false && start > maxDate )||( minDate!==false && start < minDate ) ){
	classes.push('xdsoft_disabled');
}
if( _xdsoft_datetime.currentTime.getMonth()!=m ) classes.push('xdsoft_other_month');
	if( (options.defaultSelect||datetimepicker.data('changed')) && _xdsoft_datetime.currentTime.dateFormat('d.m.Y')==start.dateFormat('d.m.Y') ){
	classes.push('xdsoft_current');
}
if( today.dateFormat('d.m.Y')==start.dateFormat('d.m.Y') ){
	classes.push('xdsoft_today');
}
if( start.getDay()==0||start.getDay()==6||~options.weekends.indexOf(start.dateFormat('d.m.Y')) ){
	classes.push('xdsoft_weekend');
}
table+='<td data-date="'+d+'" data-month="'+m+'" data-year="'+y+'"'+' class="xdsoft_date xdsoft_day_of_week'+start.getDay()+' '+ classes.join(' ')+'">'+'<div>'+d+'</div>'+'</td>';
	if( start.getDay()==options.dayOfWeekStartPrev ){
	table+='</tr>';
}
start.setDate(d+1);
}
table+='</tbody></table>';
	calendar.html(table);
	mounth_picker.find('.xdsoft_label span').eq(0).text(options.i18n[options.lang].months[_xdsoft_datetime.currentTime.getMonth()]);
	mounth_picker.find('.xdsoft_label span').eq(1).text(_xdsoft_datetime.currentTime.getFullYear());
	// generate timeboxvar time = '',h = '',m ='',line_time = function line_time( h,m ){
	var now = _xdsoft_datetime.now();
	now.setHours(h);
	h = parseInt(now.getHours());
	now.setMinutes(m);
	m = parseInt(now.getMinutes());
	classes = [];
	if( (options.maxTime!==false&&_xdsoft_datetime.strtotime(options.maxTime).getTime()<now.getTime())||(options.minTime!==false&&_xdsoft_datetime.strtotime(options.minTime).getTime()>now.getTime()))classes.push('xdsoft_disabled');
	if( (options.defaultSelect||datetimepicker.data('changed')) && parseInt(_xdsoft_datetime.currentTime.getHours())==parseInt(h)&&(options.step>59||Math[options.roundTime](_xdsoft_datetime.currentTime.getMinutes()/options.step)*options.step==parseInt(m)))classes.push('xdsoft_current');
	if( parseInt(today.getHours())==parseInt(h)&&parseInt(today.getMinutes())==parseInt(m))classes.push('xdsoft_today');
	time+= '<div class="xdsoft_time '+classes.join(' ')+'" data-hour="'+h+'" data-minute="'+m+'">'+now.dateFormat(options.formatTime)+'</div>';
}
;
	if( !options.allowTimes || !$.isArray(options.allowTimes) || !options.allowTimes.length ){
	for( var i=0,j=0;
	i<(options.hours12?12:24);
	i++ ){
	for( j=0;
	j<60;
	j+=options.step ){
	h = (i<10?'0':'')+i;
	m = (j<10?'0':'')+j;
	line_time( h,m );
}
}
}
else{
	for( var i=0;
	i<options.allowTimes.length;
	i++ ){
	h = _xdsoft_datetime.strtotime(options.allowTimes[i]).getHours();
	m = _xdsoft_datetime.strtotime(options.allowTimes[i]).getMinutes();
	line_time( h,m );
}
}
timebox.html(time);
	var opt = '',i = 0;
	for( i = parseInt(options.yearStart,10)+options.yearOffset;
	i<= parseInt(options.yearEnd,10)+options.yearOffset;
	i++ ){
	opt+='<div class="xdsoft_option '+(_xdsoft_datetime.currentTime.getFullYear()==i?'xdsoft_current':'')+'" data-value="'+i+'">'+i+'</div>';
}
yearselect.children().eq(0).html(opt);
	for( i = 0,opt = '';
	i<= 11;
	i++ ){
	opt+='<div class="xdsoft_option '+(_xdsoft_datetime.currentTime.getMonth()==i?'xdsoft_current':'')+'" data-value="'+i+'">'+options.i18n[options.lang].months[i]+'</div>';
}
monthselect.children().eq(0).html(opt);
	$(this).trigger('generate.xdsoft');
	event.stopPropagation();
}
).on('afterOpen.xdsoft',function(){
	if( options.timepicker && timebox.find('.xdsoft_current').length ){
	var pheight = timeboxparent[0].clientHeight,height = timebox[0].offsetHeight,top = timebox.find('.xdsoft_current').index()*options.timeHeightInTimePicker+1;
	if( (height-pheight)<top )top = height-pheight;
	timebox.css('marginTop','-'+parseInt(top)+'px');
	timeboxparent.trigger('scroll_element.xdsoft_scroller',[parseInt(top)/(height-pheight)]);
}
}
);
	var timerclick = 0;
	calendar.on('click.xdsoft','td',function(){
	timerclick++;
	var $this = $(this),currentTime = _xdsoft_datetime.currentTime;
	if( $this.hasClass('xdsoft_disabled') )return false;
	currentTime.setFullYear( $this.data('year') );
	currentTime.setMonth( $this.data('month') );
	currentTime.setDate( $this.data('date') );
	datetimepicker.trigger('select.xdsoft',[currentTime]);
	input.val( _xdsoft_datetime.str() );
	if( (timerclick>1||(options.closeOnDateSelect===true||( options.closeOnDateSelect===0&&!options.timepicker )))&&!options.inline ){
	datetimepicker.trigger('close.xdsoft');
}
if( options.onSelectDate &&options.onSelectDate.call ){
	options.onSelectDate.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input'));
}
datetimepicker.data('changed',true);
	datetimepicker.trigger('xchange.xdsoft');
	datetimepicker.trigger('changedatetime.xdsoft');
	setTimeout(function(){
	timerclick = 0;
}
,200);
}
);
	timebox.on('click.xdsoft','div',function(){
	var $this = $(this),currentTime = _xdsoft_datetime.currentTime;
	if( $this.hasClass('xdsoft_disabled') )return false;
	currentTime.setHours($this.data('hour'));
	currentTime.setMinutes($this.data('minute'));
	datetimepicker.trigger('select.xdsoft',[currentTime]);
	datetimepicker.data('input').val( _xdsoft_datetime.str() );
	!options.inline&&datetimepicker.trigger('close.xdsoft');
	if( options.onSelectTime&&options.onSelectTime.call ){
	options.onSelectTime.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input'));
}
datetimepicker.data('changed',true);
	datetimepicker.trigger('xchange.xdsoft');
	datetimepicker.trigger('changedatetime.xdsoft');
}
);
	datetimepicker.mousewheel&&datepicker.mousewheel(function(event,delta,deltaX,deltaY){
	if( !options.scrollMonth )return true;
	if( delta<0 )_xdsoft_datetime.nextMonth();
	else_xdsoft_datetime.prevMonth();
	return false;
}
);
	datetimepicker.mousewheel&&timeboxparent.unmousewheel().mousewheel(function(event,delta,deltaX,deltaY){
	if( !options.scrollTime )return true;
	var pheight = timeboxparent[0].clientHeight,height = timebox[0].offsetHeight,top = Math.abs(parseInt(timebox.css('marginTop'))),fl = true;
	if( delta<0 && (height-pheight)-options.timeHeightInTimePicker>=top ){
	timebox.css('marginTop','-'+(top+options.timeHeightInTimePicker)+'px');
	fl = false;
}
else if( delta>0&&top-options.timeHeightInTimePicker>=0 ){
	timebox.css('marginTop','-'+(top-options.timeHeightInTimePicker)+'px');
	fl = false;
}
timeboxparent.trigger('scroll_element.xdsoft_scroller',[Math.abs(parseInt(timebox.css('marginTop'))/(height-pheight))]);
	event.stopPropagation();
	return fl;
}
);
	datetimepicker.on('changedatetime.xdsoft',function(){
	if( options.onChangeDateTime&&options.onChangeDateTime.call )options.onChangeDateTime.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input'));
}
).on('generate.xdsoft',function(){
	if( options.onGenerate&&options.onGenerate.call )options.onGenerate.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input'));
}
);
	var current_time_index = 0;
	input.mousewheel&&input.mousewheel(function( event,delta,deltaX,deltaY ){
	if( !options.scrollInput )return true;
	if( !options.datepicker && options.timepicker ){
	current_time_index = timebox.find('.xdsoft_current').length?timebox.find('.xdsoft_current').eq(0).index():0;
	if( current_time_index+delta>=0&&current_time_index+delta<timebox.children().length )current_time_index+=delta;
	timebox.children().eq(current_time_index).length&&timebox.children().eq(current_time_index).trigger('mousedown');
	return false;
}
else if( options.datepicker && !options.timepicker ){
	datepicker.trigger( event,[delta,deltaX,deltaY]);
	input.val&&input.val( _xdsoft_datetime.str() );
	datetimepicker.trigger('changedatetime.xdsoft');
	return false;
}
}
);
	var setPos = function(){
	var offset = datetimepicker.data('input').offset(),top = offset.top+datetimepicker.data('input')[0].offsetHeight-1,left = offset.left;
	if( top+datetimepicker[0].offsetHeight>$(window).height()+$(window).scrollTop() )top = offset.top-datetimepicker[0].offsetHeight+1;
	if( left+datetimepicker[0].offsetWidth>$(window).width() )left = offset.left-datetimepicker[0].offsetWidth+datetimepicker.data('input')[0].offsetWidth;
	datetimepicker.css({
	left:left,top:top}
);
}
;
	datetimepicker.on('open.xdsoft',function(){
	var onShow = true;
	if( options.onShow&&options.onShow.call){
	onShow = options.onShow.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input'));
}
if( onShow!==false ){
	datetimepicker.show();
	datetimepicker.trigger('afterOpen.xdsoft');
	setPos();
	$(window).off('resize.xdsoft',setPos).on('resize.xdsoft',setPos);
	if( options.closeOnWithoutClick ){
	$([document.body,window]).on('mousedown.xdsoft',function arguments_callee6(){
	datetimepicker.trigger('close.xdsoft');
	$([document.body,window]).off('mousedown.xdsoft',arguments_callee6);
}
);
}
}
}
).on('close.xdsoft',function( event ){
	var onClose = true;
	if( options.onClose&&options.onClose.call ){
	onClose=options.onClose.call(datetimepicker,_xdsoft_datetime.currentTime,datetimepicker.data('input'));
}
if( onClose!==false&&!options.opened&&!options.inline ){
	datetimepicker.hide();
}
event.stopPropagation();
}
).data('input',input);
	var timer = 0,timer1 = 0;
	datetimepicker.data('xdsoft_datetime',_xdsoft_datetime);
	datetimepicker.setOptions(options);
	var ct = options.value?options.value:(input&&input.val&&input.val())?input.val():'';
	if( ct && _xdsoft_datetime.isValidDate(ct = Date.parseDate(ct,options.format)) ){
	datetimepicker.data('changed',true);
}
elsect = '';
	_xdsoft_datetime.setCurrentTime( ct?ct:0 );
	datetimepicker.trigger('afterOpen.xdsoft');
	input.data( 'xdsoft_datetimepicker',datetimepicker ).on('open.xdsoft focusin.xdsoft mousedown.xdsoft',function(event){
	if( input.is(':disabled')||input.is(':hidden')||!input.is(':visible') )return;
	clearTimeout(timer);
	timer = setTimeout(function(){
	if( input.is(':disabled')||input.is(':hidden')||!input.is(':visible') )return;
	_xdsoft_datetime.setCurrentTime((input&&input.val&&input.val())?input.val():0);
	datetimepicker.trigger('open.xdsoft');
}
,100);
}
).on('keydown.xdsoft',function( event ){
	var val = this.value,key = event.which;
	switch(true){
	case !!~([ENTER].indexOf(key)):var elementSelector = $("input:visible,textarea:visible");
	datetimepicker.trigger('close.xdsoft');
	elementSelector.eq(elementSelector.index(this) + 1).focus();
	return false;
	case !!~[TAB].indexOf(key):datetimepicker.trigger('close.xdsoft');
	return true;
}
}
);
}
,destroyDateTimePicker = function( input ){
	var datetimepicker = input.data('xdsoft_datetimepicker');
	if( datetimepicker ){
	datetimepicker.data('xdsoft_datetime',null);
	datetimepicker.remove();
	input.data( 'xdsoft_datetimepicker',null ).off( 'open.xdsoft focusin.xdsoft focusout.xdsoft mousedown.xdsoft blur.xdsoft keydown.xdsoft' );
	$(window).off('resize.xdsoft');
	$([window,document.body]).off('mousedown.xdsoft');
	input.unmousewheel&&input.unmousewheel();
}
}
;
	$(document).off('keydown.xdsoftctrl keyup.xdsoftctrl').on('keydown.xdsoftctrl',function(e){
	if ( e.keyCode == CTRLKEY )ctrlDown = true;
}
).on('keyup.xdsoftctrl',function(e){
	if ( e.keyCode == CTRLKEY )ctrlDown = false;
}
);
	return this.each(function(){
	var datetimepicker;
	if( datetimepicker = $(this).data('xdsoft_datetimepicker') ){
	if( $.type(opt) === 'string' ){
	switch(opt){
	case 'show':$(this).select().focus();
	datetimepicker.trigger( 'open.xdsoft' );
	break;
	case 'hide':datetimepicker.trigger('close.xdsoft');
	break;
	case 'destroy':destroyDateTimePicker($(this));
	break;
	case 'reset':this.value = this.defaultValue;
	if(!this.value || !datetimepicker.data('xdsoft_datetime').isValidDate(Date.parseDate(this.value,options.format)))datetimepicker.data('changed',false);
	datetimepicker.data('xdsoft_datetime').setCurrentTime(this.value);
	break;
}
}
else{
	datetimepicker.setOptions(opt);
}
return 0;
}
else($.type(opt) !== 'string')&&createDateTimePicker($(this));
}
);
}
;
}
)( jQuery );
	//http://www.xaprb.com/blog/2005/12/12/javascript-closures-for-runtime-efficiency//* * Copyright (C) 2004 Baron Schwartz <baron at sequent dot org> * * This program is free software;
	you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the * Free Software Foundation,version 2.1. * * This program is distributed in the hope that it will be useful,but WITHOUT * ANY WARRANTY;
	without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */
Date.parseFunctions={
	count:0}
;
	Date.parseRegexes=[];
	Date.formatFunctions={
	count:0}
;
	Date.prototype.dateFormat=function(format){
	if(Date.formatFunctions[format]==null){
	Date.createNewFormat(format)}
var func=Date.formatFunctions[format];
	return this[func]()}
;
	Date.createNewFormat=function(format){
	var funcName="format"+Date.formatFunctions.count++;
	Date.formatFunctions[format]=funcName;
	var code="Date.prototype."+funcName+" = function(){
	return ";
	var special=false;
	var ch='';
	for(var i=0;
	i<format.length;
	++i){
	ch=format.charAt(i);
	if(!special&&ch=="\\"){
	special=true}
else if(special){
	special=false;
	code+="'"+String.escape(ch)+"' + "}
else{
	code+=Date.getFormatCode(ch)}
}
eval(code.substring(0,code.length-3)+";
}
")}
;
	Date.getFormatCode=function(character){
	switch(character){
	case"d":return"String.leftPad(this.getDate(),2,'0') + ";
	case"D":return"Date.dayNames[this.getDay()].substring(0,3) + ";
	case"j":return"this.getDate() + ";
	case"l":return"Date.dayNames[this.getDay()] + ";
	case"S":return"this.getSuffix() + ";
	case"w":return"this.getDay() + ";
	case"z":return"this.getDayOfYear() + ";
	case"W":return"this.getWeekOfYear() + ";
	case"F":return"Date.monthNames[this.getMonth()] + ";
	case"m":return"String.leftPad(this.getMonth() + 1,2,'0') + ";
	case"M":return"Date.monthNames[this.getMonth()].substring(0,3) + ";
	case"n":return"(this.getMonth() + 1) + ";
	case"t":return"this.getDaysInMonth() + ";
	case"L":return"(this.isLeapYear() ? 1:0) + ";
	case"Y":return"this.getFullYear() + ";
	case"y":return"('' + this.getFullYear()).substring(2,4) + ";
	case"a":return"(this.getHours() < 12 ? 'am':'pm') + ";
	case"A":return"(this.getHours() < 12 ? 'AM':'PM') + ";
	case"g":return"((this.getHours() %12) ? this.getHours() % 12:12) + ";
	case"G":return"this.getHours() + ";
	case"h":return"String.leftPad((this.getHours() %12) ? this.getHours() % 12:12,2,'0') + ";
	case"H":return"String.leftPad(this.getHours(),2,'0') + ";
	case"i":return"String.leftPad(this.getMinutes(),2,'0') + ";
	case"s":return"String.leftPad(this.getSeconds(),2,'0') + ";
	case"O":return"this.getGMTOffset() + ";
	case"T":return"this.getTimezone() + ";
	case"Z":return"(this.getTimezoneOffset() * -60) + ";
	default:return"'"+String.escape(character)+"' + "}
}
;
	Date.parseDate=function(input,format){
	if(Date.parseFunctions[format]==null){
	Date.createParser(format)}
var func=Date.parseFunctions[format];
	return Date[func](input)}
;
	Date.createParser=function(format){
	var funcName="parse"+Date.parseFunctions.count++;
	var regexNum=Date.parseRegexes.length;
	var currentGroup=1;
	Date.parseFunctions[format]=funcName;
	var code="Date."+funcName+" = function(input){
	\n"+"var y = -1,m = -1,d = -1,h = -1,i = -1,s = -1;
	\n"+"var d = new Date();
	\n"+"y = d.getFullYear();
	\n"+"m = d.getMonth();
	\n"+"d = d.getDate();
	\n"+"var results = input.match(Date.parseRegexes["+regexNum+"]);
	\n"+"if (results && results.length > 0){
	";
	var regex="";
	var special=false;
	var ch='';
	for(var i=0;
	i<format.length;
	++i){
	ch=format.charAt(i);
	if(!special&&ch=="\\"){
	special=true}
else if(special){
	special=false;
	regex+=String.escape(ch)}
else{
	obj=Date.formatCodeToRegex(ch,currentGroup);
	currentGroup+=obj.g;
	regex+=obj.s;
	if(obj.g&&obj.c){
	code+=obj.c}
}
}
code+="if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0)\n"+"{
	return new Date(y,m,d,h,i,s);
}
\n"+"else if (y > 0 && m >= 0 && d > 0 && h >= 0 && i >= 0)\n"+"{
	return new Date(y,m,d,h,i);
}
\n"+"else if (y > 0 && m >= 0 && d > 0 && h >= 0)\n"+"{
	return new Date(y,m,d,h);
}
\n"+"else if (y > 0 && m >= 0 && d > 0)\n"+"{
	return new Date(y,m,d);
}
\n"+"else if (y > 0 && m >= 0)\n"+"{
	return new Date(y,m);
}
\n"+"else if (y > 0)\n"+"{
	return new Date(y);
}
\n"+"}
return null;
}
";
	Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$");
	eval(code)}
;
	Date.formatCodeToRegex=function(character,currentGroup){
	switch(character){
	case"D":return{
	g:0,c:null,s:"(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)"}
;
	case"j":case"d":return{
	g:1,c:"d = parseInt(results["+currentGroup+"],10);
	\n",s:"(\\d{
	1,2}
)"}
;
	case"l":return{
	g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}
;
	case"S":return{
	g:0,c:null,s:"(?:st|nd|rd|th)"}
;
	case"w":return{
	g:0,c:null,s:"\\d"}
;
	case"z":return{
	g:0,c:null,s:"(?:\\d{
	1,3}
)"}
;
	case"W":return{
	g:0,c:null,s:"(?:\\d{
	2}
)"}
;
	case"F":return{
	g:1,c:"m = parseInt(Date.monthNumbers[results["+currentGroup+"].substring(0,3)],10);
	\n",s:"("+Date.monthNames.join("|")+")"}
;
	case"M":return{
	g:1,c:"m = parseInt(Date.monthNumbers[results["+currentGroup+"]],10);
	\n",s:"(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"}
;
	case"n":case"m":return{
	g:1,c:"m = parseInt(results["+currentGroup+"],10) - 1;
	\n",s:"(\\d{
	1,2}
)"}
;
	case"t":return{
	g:0,c:null,s:"\\d{
	1,2}
"}
;
	case"L":return{
	g:0,c:null,s:"(?:1|0)"}
;
	case"Y":return{
	g:1,c:"y = parseInt(results["+currentGroup+"],10);
	\n",s:"(\\d{
	4}
)"}
;
	case"y":return{
	g:1,c:"var ty = parseInt(results["+currentGroup+"],10);
	\n"+"y = ty > Date.y2kYear ? 1900 + ty:2000 + ty;
	\n",s:"(\\d{
	1,2}
)"}
;
	case"a":return{
	g:1,c:"if (results["+currentGroup+"] == 'am'){
	\n"+"if (h == 12){
	h = 0;
}
\n"+"}
else{
	if (h < 12){
	h += 12;
}
}
",s:"(am|pm)"}
;
	case"A":return{
	g:1,c:"if (results["+currentGroup+"] == 'AM'){
	\n"+"if (h == 12){
	h = 0;
}
\n"+"}
else{
	if (h < 12){
	h += 12;
}
}
",s:"(AM|PM)"}
;
	case"g":case"G":case"h":case"H":return{
	g:1,c:"h = parseInt(results["+currentGroup+"],10);
	\n",s:"(\\d{
	1,2}
)"}
;
	case"i":return{
	g:1,c:"i = parseInt(results["+currentGroup+"],10);
	\n",s:"(\\d{
	2}
)"}
;
	case"s":return{
	g:1,c:"s = parseInt(results["+currentGroup+"],10);
	\n",s:"(\\d{
	2}
)"}
;
	case"O":return{
	g:0,c:null,s:"[+-]\\d{
	4}
"}
;
	case"T":return{
	g:0,c:null,s:"[A-Z]{
	3}
"}
;
	case"Z":return{
	g:0,c:null,s:"[+-]\\d{
	1,5}
"}
;
	default:return{
	g:0,c:null,s:String.escape(character)}
}
}
;
	Date.prototype.getTimezone=function(){
	return this.toString().replace(/^.*? ([A-Z]{
	3}
) [0-9]{
	4}
.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3")}
;
	Date.prototype.getGMTOffset=function(){
	return(this.getTimezoneOffset()>0?"-":"+")+String.leftPad(Math.floor(Math.abs(this.getTimezoneOffset())/60),2,"0")+String.leftPad(Math.abs(this.getTimezoneOffset())%60,2,"0")}
;
	Date.prototype.getDayOfYear=function(){
	var num=0;
	Date.daysInMonth[1]=this.isLeapYear()?29:28;
	for(var i=0;
	i<this.getMonth();
	++i){
	num+=Date.daysInMonth[i]}
return num+this.getDate()-1}
;
	Date.prototype.getWeekOfYear=function(){
	var now=this.getDayOfYear()+(4-this.getDay());
	var jan1=new Date(this.getFullYear(),0,1);
	var then=(7-jan1.getDay()+4);
	document.write(then);
	return String.leftPad(((now-then)/7)+1,2,"0")}
;
	Date.prototype.isLeapYear=function(){
	var year=this.getFullYear();
	return((year&3)==0&&(year%100||(year%400==0&&year)))}
;
	Date.prototype.getFirstDayOfMonth=function(){
	var day=(this.getDay()-(this.getDate()-1))%7;
	return(day<0)?(day+7):day}
;
	Date.prototype.getLastDayOfMonth=function(){
	var day=(this.getDay()+(Date.daysInMonth[this.getMonth()]-this.getDate()))%7;
	return(day<0)?(day+7):day}
;
	Date.prototype.getDaysInMonth=function(){
	Date.daysInMonth[1]=this.isLeapYear()?29:28;
	return Date.daysInMonth[this.getMonth()]}
;
	Date.prototype.getSuffix=function(){
	switch(this.getDate()){
	case 1:case 21:case 31:return"st";
	case 2:case 22:return"nd";
	case 3:case 23:return"rd";
	default:return"th"}
}
;
	String.escape=function(string){
	return string.replace(/('|\\)/g,"\\$1")}
;
	String.leftPad=function(val,size,ch){
	var result=new String(val);
	if(ch==null){
	ch=" "}
while(result.length<size){
	result=ch+result}
return result}
;
	Date.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];
	Date.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];
	Date.dayNames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
	Date.y2kYear=50;
	Date.monthNumbers={
	Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11}
;
	Date.patterns={
	ISO8601LongPattern:"Y-m-d H:i:s",ISO8601ShortPattern:"Y-m-d",ShortDatePattern:"n/j/Y",LongDatePattern:"l,F d,Y",FullDateTimePattern:"l,F d,Y g:i:s A",MonthDayPattern:"F d",ShortTimePattern:"g:i A",LongTimePattern:"g:i:s A",SortableDateTimePattern:"Y-m-d\\TH:i:s",UniversalSortableDateTimePattern:"Y-m-d H:i:sO",YearMonthPattern:"F,Y"}
;
	//https://github.com/brandonaaron/jquery-mousewheel/blob/master/jquery.mousewheel.js/* * Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net) * * Licensed under the MIT License (LICENSE.txt). * * Thanks to:http://adomas.org/javascript-mouse-wheel/ for some pointers. * Thanks to:Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. * Thanks to:Seamus Leahy for adding deltaX and deltaY * * Version:3.1.3 * * Requires:1.2.2+ */
(function(factory){
	if(typeof define==='function'&&define.amd){
	define(['jquery'],factory)}
else if(typeof exports==='object'){
	module.exports=factory}
else{
	factory(jQuery)}
}
(function($){
	var toFix=['wheel','mousewheel','DOMMouseScroll','MozMousePixelScroll'];
	var toBind='onwheel'in document||document.documentMode>=9?['wheel']:['mousewheel','DomMouseScroll','MozMousePixelScroll'];
	var lowestDelta,lowestDeltaXY;
	if($.event.fixHooks){
	for(var i=toFix.length;
	i;
	){
	$.event.fixHooks[toFix[--i]]=$.event.mouseHooks}
}
$.event.special.mousewheel={
	setup:function(){
	if(this.addEventListener){
	for(var i=toBind.length;
	i;
	){
	this.addEventListener(toBind[--i],handler,false)}
}
else{
	this.onmousewheel=handler}
}
,teardown:function(){
	if(this.removeEventListener){
	for(var i=toBind.length;
	i;
	){
	this.removeEventListener(toBind[--i],handler,false)}
}
else{
	this.onmousewheel=null}
}
}
;
	$.fn.extend({
	mousewheel:function(fn){
	return fn?this.bind("mousewheel",fn):this.trigger("mousewheel")}
,unmousewheel:function(fn){
	return this.unbind("mousewheel",fn)}
}
);
	function handler(event){
	var orgEvent=event||window.event,args=[].slice.call(arguments,1),delta=0,deltaX=0,deltaY=0,absDelta=0,absDeltaXY=0,fn;
	event=$.event.fix(orgEvent);
	event.type="mousewheel";
	if(orgEvent.wheelDelta){
	delta=orgEvent.wheelDelta}
if(orgEvent.detail){
	delta=orgEvent.detail*-1}
if(orgEvent.deltaY){
	deltaY=orgEvent.deltaY*-1;
	delta=deltaY}
if(orgEvent.deltaX){
	deltaX=orgEvent.deltaX;
	delta=deltaX*-1}
if(orgEvent.wheelDeltaY!==undefined){
	deltaY=orgEvent.wheelDeltaY}
if(orgEvent.wheelDeltaX!==undefined){
	deltaX=orgEvent.wheelDeltaX*-1}
absDelta=Math.abs(delta);
	if(!lowestDelta||absDelta<lowestDelta){
	lowestDelta=absDelta}
absDeltaXY=Math.max(Math.abs(deltaY),Math.abs(deltaX));
	if(!lowestDeltaXY||absDeltaXY<lowestDeltaXY){
	lowestDeltaXY=absDeltaXY}
fn=delta>0?'floor':'ceil';
	delta=Math[fn](delta/lowestDelta);
	deltaX=Math[fn](deltaX/lowestDeltaXY);
	deltaY=Math[fn](deltaY/lowestDeltaXY);
	args.unshift(event,delta,deltaX,deltaY);
	return($.event.dispatch||$.event.handle).apply(this,args)}
}
));
	

CSS代码(jquery.datetimepicker.css):

.xdsoft_datetimepicker{box-shadow:0px 5px 15px -5px rgba(0,0,0,0.506);background:#FFFFFF;border-bottom:1px solid #BBBBBB;border-left:1px solid #CCCCCC;border-right:1px solid #CCCCCC;border-top:1px solid #CCCCCC;color:#333333;display:block;font-family:"Helvetica Neue","Helvetica","Arial",sans-serif;padding:8px;padding-left:0px;padding-top:2px;position:absolute;z-index:9999;-moz-box-sizing:border-box;box-sizing:border-box;display:none;}
.xdsoft_datetimepicker iframe{position:absolute;left:0;top:0;width:75px;height:210px;background:transparent;border:none;}
/*For IE8 or lower*/
.xdsoft_datetimepicker button{border:none !important;}
.xdsoft_noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}
.xdsoft_noselect::selection{background:transparent;}
.xdsoft_noselect::-moz-selection{background:transparent;}
.xdsoft_datetimepicker.xdsoft_inline{display:inline-block;position:static;box-shadow:none;}
.xdsoft_datetimepicker *{-moz-box-sizing:border-box;box-sizing:border-box;padding:0px;margin:0px;}
.xdsoft_datetimepicker .xdsoft_datepicker,.xdsoft_datetimepicker .xdsoft_timepicker{display:none;}
.xdsoft_datetimepicker .xdsoft_datepicker.active,.xdsoft_datetimepicker .xdsoft_timepicker.active{display:block;}
.xdsoft_datetimepicker .xdsoft_datepicker{width:224px;float:left;margin-left:8px;}
.xdsoft_datetimepicker .xdsoft_timepicker{width:58px;float:left;text-align:center;margin-left:8px;margin-top:0px;}
.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker{margin-top:8px;margin-bottom:3px}
.xdsoft_datetimepicker .xdsoft_mounthpicker{position:relative;text-align:center;}
.xdsoft_datetimepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_next,.xdsoft_datetimepicker .xdsoft_today_button{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAeCAYAAACsYQl4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDozQjRCQjRGREU4MkNFMzExQjRDQkIyRDJDOTdBRUI1MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCQjg0OUYyNTZDODAxMUUzQjMwM0IwMERBNUU0ODQ5NSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCQjg0OUYyNDZDODAxMUUzQjMwM0IwMERBNUU0ODQ5NSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkI5NzE3MjFBN0E2Q0UzMTFBQjJEQjgzMDk5RTNBNTdBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNCNEJCNEZERTgyQ0UzMTFCNENCQjJEMkM5N0FFQjUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+aQvATgAAAfVJREFUeNrsmr1OwzAQxzGtkPjYEAuvVGAvfQIGRKADE49gdLwDDwBiZ2RhQUKwICQkWLsgFiRQuIBTucFJ/XFp4+hO+quqnZ4uvzj2nV2RpukCW/22yAgYNINmc7du7DcghCjrkqgOKjF1znpt6rZ0AGWQj7TvCU8d9UM+QAGDrhdyc2Bnc1WVVPBev9V8lBnY+rDwncWZThG4xk4lmxtJy2AHgoY/FySgbSBPwPZ8mEXbQx3aDERb0EbYAYFC7pcAtAvkMWwC0D3NX58S9D/YnoGC7nPWr3Dg9JTbtuHhDShBT8D2CBSK/iIEvVXxpuxSgh7DdgwUTL4iA92zmJb6lKB/YTsECmV+IgK947AGDIqgQ/LojsO135Hn51l2cWlov0JdGNrPUceueXRwilSVgkUyom9Rd6gbLfYTDeO+1v6orn0InTogYDGUkYLO3/wc9BdqqTCKP1Tfi+oTIaCBIL2TES+GTyruT9S61p6BHam+99DFEAgLFklYsIBHwSI9QY80H5ta+1rB/6ovaKihBJeEJbgLbBlQgl+j3lDPqA2tfQV1j3pVn8s+oKHGTSVJ+FqDLeR5bCqJ2E/BCycsoLZETXaKGs7rhKVt+9HZScrZNMi88V8P7LlDbvOZYaJVpMMmBCT4n0o8dTBoNgbdWPsRYACs3r7XyNfbnAAAAABJRU5ErkJggg==');}
.xdsoft_datetimepicker .xdsoft_prev{float:left;background-position:-20px 0px;}
.xdsoft_datetimepicker .xdsoft_today_button{float:left;background-position:-70px 0px;margin-left:5px;}
.xdsoft_datetimepicker .xdsoft_next{float:right;background-position:0px 0px;}
.xdsoft_datetimepicker .xdsoft_next:active,.xdsoft_datetimepicker .xdsoft_prev:active{}
.xdsoft_datetimepicker .xdsoft_next,.xdsoft_datetimepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_today_button{background-color:transparent;background-repeat:no-repeat;border:0px none currentColor;cursor:pointer;display:block;height:30px;opacity:0.5;outline:medium none currentColor;overflow:hidden;padding:0px;position:relative;text-indent:100%;white-space:nowrap;width:20px;}
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next{float:none;background-position:-40px -15px;height:15px;width:30px;display:block;margin-left:14px;margin-top:7px;}
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev{background-position:-40px 0px;margin-bottom:7px;margin-top:0px;}
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box{height:151px;overflow:hidden;border-bottom:1px solid #DDDDDD;}
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div{background:#F5F5F5;border-top:1px solid #DDDDDD;color:#666666;font-size:12px;text-align:center;border-collapse:collapse;cursor:pointer;border-bottom-width:0px;height:25px;line-height:25px;}
.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div > div:first-child{border-top-width:0px;}
.xdsoft_datetimepicker .xdsoft_today_button:hover,.xdsoft_datetimepicker .xdsoft_next:hover,.xdsoft_datetimepicker .xdsoft_prev:hover{opacity:1;}
.xdsoft_datetimepicker .xdsoft_label{display:inline;position:relative;z-index:9999;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:bold;background-color:#fff;float:left;width:182px;text-align:center;cursor:pointer;}
.xdsoft_datetimepicker .xdsoft_label:hover{text-decoration:underline;}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select{border:1px solid #ccc;position:absolute;display:block;right:0px;top:30px;z-index:101;display:none;background:#fff;max-height:160px;overflow-y:hidden;}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_monthselect{right:-7px;}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select.xdsoft_yearselect{right:2px;}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option:hover{color:#fff;background:#ff8000;}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option{padding:2px 10px 2px 5px;}
.xdsoft_datetimepicker .xdsoft_label > .xdsoft_select > div > .xdsoft_option.xdsoft_current{background:#33AAFF;box-shadow:#178FE5 0px 1px 3px 0px inset;color:#fff;font-weight:700;}
.xdsoft_datetimepicker .xdsoft_month{width:90px;text-align:right;}
.xdsoft_datetimepicker .xdsoft_calendar{clear:both;}
.xdsoft_datetimepicker .xdsoft_year{width:56px;}
.xdsoft_datetimepicker .xdsoft_calendar table{border-collapse:collapse;width:100%;}
.xdsoft_datetimepicker .xdsoft_calendar td > div{padding-right:5px;}
.xdsoft_datetimepicker .xdsoft_calendar th{height:25px;}
.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th{width:14.2857142%;text-align:center;background:#F5F5F5;border:1px solid #DDDDDD;color:#666666;font-size:12px;text-align:right;padding:0px;border-collapse:collapse;cursor:pointer;height:25px;}
.xdsoft_datetimepicker .xdsoft_calendar th{background:#F1F1F1;}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today{color:#33AAFF;}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_current{background:#33AAFF;box-shadow:#178FE5 0px 1px 3px 0px inset;color:#fff;font-weight:700;}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month,.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled,.xdsoft_datetimepicker .xdsoft_time_box >div >div.xdsoft_disabled{opacity:0.5;}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled{opacity:0.2;}
.xdsoft_datetimepicker .xdsoft_calendar td:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div:hover{color:#fff !important;background:#ff8000 !important;box-shadow:none !important;}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box >div >div.xdsoft_disabled:hover{color:inherit!important;background:inherit !important;box-shadow:inherit !important;}
.xdsoft_datetimepicker .xdsoft_calendar th{font-weight:700;text-align:center;color:#999;cursor:default;}
.xdsoft_datetimepicker .xdsoft_copyright{color:#ccc !important;font-size:10px;clear:both;float:none;margin-left:8px;}
.xdsoft_datetimepicker .xdsoft_copyright a{color:#eee !important;}
.xdsoft_datetimepicker .xdsoft_copyright a:hover{color:#aaa !important;}
.xdsoft_time_box{position:relative;border:1px solid #ccc;}
.xdsoft_scrollbar >.xdsoft_scroller{background:#ccc !important;height:20px;border-radius:3px;}
.xdsoft_scrollbar{position:absolute;width:7px;width:7px;right:0px;top:0px;bottom:0px;cursor:pointer;}
.xdsoft_scroller_box{position:relative;}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
69.78 KB
Html 表单代码1
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章