
下面重点说明日期范围限制:
1)静态限制
你可以给通过配置minDate(最小日期),maxDate(最大日期)为静态日期值,来限定日期的范围
示例1.1:限制日期的范围是 2012-12-1到2012-12-20
复制代码 代码如下:```<input class="Wdate" id="d2" onfocus="WdatePicker({skin:"whyGreen",minDate:"2012-12-1",maxDate:"2012-12-20"})" />
示例1.2:限制日期的范围是 2012-12-4 21:30:00 到 2012-12-4 23:59:30
复制代码 代码如下:```<input type="text" id="d3" class="Wdate" onfocus="WdatePicker({skin:"whyGreen",dateFmt:"yyyy-MM-dd HH:mm:ss",minDate:"2012-12-4 21:30:00",maxDate:"2012-12-4 23:59:30"})" value="2012-12-4 21:30:00"/>
示例1.3:限制日期的范围是 2012年12月 到 2013年12月
复制代码 代码如下:```<input type="text" class="Wdate" id="d4" onfocus="WdatePicker({dateFmt:"yyyy年M月",minDate:"2012-12",maxDate:"2013-12"})"/>
示例1.4:限制时间的范围是 9:00:00 到 18:30:00
复制代码 代码如下:```<input class="Wdate" id="d5" onfocus="WdatePicker({dateFmt:"H:mm:ss",minDate:"9:00:00",maxDate:"18:30:00"})" />
2)动态限制
你可以通过系统给出的动态变量,如%y(当前年),%M(当前月)等来限度日期范围,你还可以通过{}进行表达式运算,如:{%d+1}:表示明天
格式 说明
%y 当前年
%M 当前月
%d 当前日
%ld 本月最后一天
%H 当前时
%m 当前分
%s 当前秒
{} 运算表达式,如:{%d+1}:表示明天
F{} {}之间是函数可写自定义JS代码
示例2.1:只能选择今天以前的日期(包括今天)
复制代码 代码如下:<input id="d421" class="Wdate" type="text" onfocus="WdatePicker({skin:"whyGreen",maxDate:"%y-%M-%d"})"/>
示例2.2:使用了运算表达式 只能选择今天以后的日期(不包括今天)
复制代码 代码如下:```<input id="d422" class="Wdate" type="text" onfocus="WdatePicker({minDate:"%y-%M-{%d+1}"})"/>
示例2.3:只能选择本月的日期1号至本月最后一天
复制代码 代码如下:```<input id="d423" class="Wdate" type="text" onfocus="WdatePicker({minDate:"%y-%M-01",maxDate:"%y-%M-%ld"})"/>
示例2.4:只能选择今天7:00:00至明天21:00:00的日期
复制代码 代码如下:```<input id="d424" class="Wdate" type="text" onfocus="WdatePicker({dateFmt:"yyyy-M-d H:mm:ss",minDate:"%y-%M-%d 7:00:00",maxDate:"%y-%M-{%d+1} 21:00:00"})"/>
示例2.5:使用了运算表达式 只能选择 20小时前 至 30小时后 的日期
复制代码 代码如下:```<input id="d425" class="Wdate" type="text" onClick="WdatePicker({dateFmt:"yyyy-MM-dd HH:mm",minDate:"%y-%M-%d {%H-20}:%m:%s",maxDate:"%y-%M-%d {%H+30}:%m:%s"})"/>
3)脚本自定义限制
系统提供了$dp.$D和$dp.$DV这两个API来辅助你进行日期运算,此外你还可以通过在 #F{} 中填入你自定义的脚本,做任何你想做的日期限制
示例3.1: 前面的日期不能大于后面的日期且两个日期都不能大于 2020-10-01
从 到
```<input id="d4311" class="Wdate" type="text" onFocus="WdatePicker({maxDate:"#F{$dp.$D("d4312")||"2020-10-01"}"})"/>```<input id="d4312" class="Wdate" type="text" onFocus="WdatePicker({minDate:"#F{$dp.$D("d4311")}",maxDate:"2020-10-01"})"/>示例3.2:前面的日期+3天 不能大于 后面的日期```<input type="text" class="Wdate" id="d4321" onFocus="WdatePicker({maxDate:"#F{$dp.$D("d4322",{d:-3});}"})"/>```<input type="text" class="Wdate" id="d4322" onFocus="WdatePicker({minDate:"#F{$dp.$D("d4321",{d:3});}"})"/>示例3.3:前面的日期+3月零2天 不能大于 后面的日期 且 前面日期都不能大于 2020-4-3减去3月零2天 后面日期 不能大于 2020-4-3<input type="text" class="Wdate" id="d4331" onFocus="WdatePicker({maxDate:"#F{$dp.$D("d4332",{M:-3,d:-2})||$dp.$DV("2020-4-3",{M:-3,d:-2})}"})"/><input type="text" class="Wdate" id="d4332" onFocus="WdatePicker({minDate:"#F{$dp.$D("d4331",{M:3,d:2});}",maxDate:"2020-4-3"})"/>示例3.4:发挥你的JS才能,定义任何你想要的日期限制<script>//返回一个随机的日期function randomDate(){var Y = 2000 + Math.round(Math.random() * 10);var M = 1 + Math.round(Math.random() * 11);var D = 1 + Math.round(Math.random() * 27);return Y+"-"+M+"-"+D;}</script><input type="text" class="Wdate" id="d434" onFocus="var date=randomDate();WdatePicker({minDate:date,maxDate:date})"/>4)无效天限制```<input id="d451" type="text" class="Wdate" onFocus="WdatePicker({disabledDates:["5$"]})"/>//注意 :"5$" 表示以 5 结尾 注意 $ 的用法示例5.2:禁用 所有早于2000-01-01的日期```<input id="d452" type="text" class="Wdate" onFocus="WdatePicker({disabledDates:["^19"]})"/>//注意:"^19" 表示以 19 开头 注意 ^ 的用法//当然,可以使用minDate实现类似的功能 这里主要是 在演示 ^ 的用法示例5.3:配合min/maxDate使用,可以把可选择的日期分隔成多段<script>function randomH(){//产生一个随机的数字 0-23var H = Math.round(Math.random() * 23);if(H<10) H="0"+H;//返回 "^" + 数字return "^"+H;}</script><input type="text" class="Wdate" id="d456" onFocus="WdatePicker({dateFmt:"HH:mm:ss",disabledDates:["#F{randomH()}"]})"/>6)有效日期```<input id="d46" type="text" class="Wdate" onFocus="WdatePicker({opposite:true,disabledDates:["5$"]})"/>//注意 :"5$" 表示以 5 结尾 注意 $ 的用法7)特殊天和特殊日期