WdatePicker文本框顯示當前日期和時間限制


    My97DatePicker是很不錯的一個日期選擇插件,體積只有幾十k但是功能非常強大。官網:http://www.my97.net/

能滿足很多苛刻的要求。

 

WdatePicker文本框顯示當前日期-實現的結果:

1、首先引入WdatePicker.js。

2、html代碼

1 <input id="setDate" class="Wdate" name="setDate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})"   type="text" /></td>

 

3、加入一段JS代碼:

 1 Date.prototype.format = function (format) {
 2           var args = {
 3               "M+": this.getMonth() + 1,
 4               "d+": this.getDate(),
 5               "h+": this.getHours(),
 6               "m+": this.getMinutes(),
 7               "s+": this.getSeconds(),
 8               "q+": Math.floor((this.getMonth() + 3) / 3), //quarter
 9 
10               "S": this.getMilliseconds()
11           };
12           if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
13           for (var i in args) {
14               var n = args[i];
15               if (new RegExp("(" + i + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? n : ("00" + n).substr(("" + n).length));
16           }
17           return format;
18       };
19 
20       $(function () {
21           $("#setDate").val(new Date().format("yyyy-MM-dd"));
22 
23       });

 

 然后就OK了。

 

 

簡單的時間限制:

1、限制只能選擇今天的日期

1 onfocus="WdatePicker({startDate:'%y',dateFmt:'yyyy-MM-dd',maxDate:'%y-%M-{%d-1}'})"

2、限制選擇今天之前的日期

1 <input id="setDate" class="Wdate" name="setDate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',maxDate:'%y-%M-%d'})"  style="padding:2px 5px;margin-left:10px;" type="text" />

效果:

 3、My97DatePicker兩個日期范圍不超過30天,第一個小於第二個,都不大於當前日期。

My97DatePicker 如果兩個輸入框,第一個不大於第二個,都不大於當前日期,兩個輸入框之間的時間不超過30天。做法。

 

如果第二個直接設置比第一個大的范圍不超過30天,那么遇到算出來的日期大於當前日期的情況,就會發生第二個輸入框可以選擇到今天之后的日期。所以要動態地修改第二個輸入范圍。
 
1.設置第一個不大於第二個,不大於當前日期。 最小為第二個日期減去30天。 並為其設置選中和清空時的事件(用於對第二個輸入框進行控制)
2.第二個的規則用函數表示。 設置最大值為一個全局變量。 通過第一個的兩個事件來修改這個全局變量。 

效果:

html code:

1 <label>日期:</label>
2 
3  <input type="text"  style="width:100px;" name="date1" id="datepicker1" size="24"   onfocus="WdatePicker({maxDate:'#F{$dp.$D(\'datepicker2\')||\'new Date()\'}',minDate:'#F{$dp.$D(\'datepicker2\',{d:-30})}',onpicked:pickedFunc,oncleared:clearedFunc})  " value="" />
4   <label>-</label>
5   <input type="text" style="width:100px;" name="date2" id="datepicker2" size="24"  onfocus="picker2rule(this)" value="" />

js code<動態修改第二個日期選擇窗口的函數>

 1 <script type="text/javascript">
 2         var md = new Date(); //第二個輸入框最大值的全局變量
 3         //第一個輸入框選擇好日期的時候操作
 4         function pickedFunc() {
 5 
 6             var Y = $dp.cal.getP('y'); //用內置方法獲取到選中的年月日
 7             var M = $dp.cal.getP('M');
 8             var D = $dp.cal.getP('d');
 9             M = parseInt(M, 10) - 1;
10             D = parseInt(D, 10) + 30; //字符串的數字轉換成int再運算。並且如果超過30天,也能自動處理。
11             var d = new Date()
12             d.setFullYear(Y, M, D) //設置時間
13             var nowDate = new Date();
14             if (nowDate <= d) { //現在的時間比較,如果算出來的值大於現在時間,修改全局變量md為現在時間。
15                 md = nowDate;
16             } else { //全局變量設置為算出來的值得 
17                 var month = d.getMonth() + 1; //月份的范圍是(0到11);
18                 md = d.getFullYear() + "-" + month + "-" + d.getDate(); //直接把d給過去會有問題,所以拼成字符串發過去
19             }
20         }
21         //第一個清空的時候的操作
22         function clearedFunc() {
23             md = new Date();
24         }
25         //給第二個輸入框定義規則
26         function picker2rule(ele) {
27             WdatePicker({ el: ele, minDate: '#F{$dp.$D(\'datepicker1\')}', maxDate: md })
28         }
29 </script>

 

========================================================================================

 

參數的值

 
        
1 onfocus="WdatePicker({el:'id', maxDate:'#F{$dp.$D(\'datepicker2\')||\'new Date()\'}',minDate:'#F{$dp.$D(\'datepicker2\',{d:-1800})}',onpicked:pickedFunc,oncleared:clearedFunc})
 
        

el:'id'--將WdatePicker的值傳給id的標簽;

doubleCalendar:true----顯示雙日期

加上class="Wdate"-----在選擇框右邊顯示日期圖標

#F{}-----{}自定義js代碼

skin:'whyGreen'----設置皮膚


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM