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