WdatePicker.js日期选择控件

转载:
http://www.cnblogs.com/luoyanli/archive/2013/05/17/3083827.html

1.静态限制
注意:日期格式必须与 realDateFmt 和 realTimeFmt 一致
你可以给通过配置minDate(最小日期),maxDate(最大日期)为静态日期值,来限定日期的范围

示例:限制日期的范围是 2006-09-10到2008-12-2

<input id="d411" class="Wdate" type="text" onfocus="WdatePicker({skin:'whyGreen',minDate: '2006-09-10', maxDate: '2008-12-20' })"/>

示例:限制日期的范围是 2008年2月 到 2008年10月

<input type="text" class="Wdate" id="d413" onfocus="WdatePicker({dateFmt: 'yyyy年M月', minDate: '2008-2', maxDate: '2008-10' })"/>

示例:限制日期的范围是 8:00:00 到 11:30:00

<input type="text" class="Wdate" id="d414" onfocus="WdatePicker({dateFmt: 'H:mm:ss', minDate: '8:00:00', maxDate: '11:30:00' })"/>

2.动态限制
注意:日期格式必须与 realDateFmt 和 realTimeFmt 一致
你可以通过系统给出的动态变量,如%y(当前年),%M(当前月)等来限度日期范围,你还可以通过#{}进行表达式运算,如:#{%d+1}:表示明天

格式 说明 
%y  当前年 
%M  当前月 
%d  当前日 
%ld 本月最后一天 
%H  当前时 
%m  当前分 
%s  当前秒 
#{} 运算表达式,如:#{%d+1}:表示明天 
#F{} {}之间是函数可写自定义JS代码

示例:只能选择今天以前的日期(包括今天)

<input id="d421" class="Wdate" type="text" onfocus="WdatePicker({skin:'whyGreen',maxDate: '%y-%M-%d' })"/>

示例:使用了运算表达式 只能选择今天以后的日期(不包括今天)

<input id="d422" class="Wdate" type="text" onfocus="WdatePicker({minDate: '%y-%M-#{%d+1}' })"/>

示例:只能选择本月的日期1号至本月最后一天

<input id="d423" class="Wdate" type="text" onfocus="WdatePicker({minDate: '%y-%M-01', maxDate: '%y-%M-%ld' })"/>

示例:只能选择今天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' })"/>

示例:使用了运算表达式 只能选择 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.脚本自定义限制
注意:日期格式必须与 realDateFmt 和 realTimeFmt 一致
示例:前面的日期不能大于后面的日期且两个日期都不能大于 2020-10-01合同有效期

'#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' })"/>

$dp.$ 相当于 document.getElementByIdx_x 函数.
#F{$dp.$D(\'d4312\')||\'2020-10-01\'} 表示当 d4312 为空时, 采用 2020-10-01 的值作为最大值

注意:
两个日期的日期格式必须相同
那么为什么里面的 ’ 使用 \’ 呢? 那是因为 ” 和 ’ 都被外围的函数使用了,故使用转义符 \ ,否则会提示JS语法错误.
所以您在其他地方使用时注意把 \’ 改成 ” 或者 ’ 来使用.

示例: 前面的日期+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});}' })"/>
使用 $dp.$D 函数 可以将日期框中的值,加上定义的日期差量:
两个参数: id={字符类型}需要处理的文本框的id值 , obj={对象类型}日期差量 
日期差量用法: 
属性y,M,d,H,m,s分别代表年月日时分秒
如 
为空时,表示直接取值,不做差量(示例4-3-1中的参数就是空的)
{M:5,d:7} 表示 五个月零7天
{y:1,d:-3} 表示 1年少3天
{d:1,H:1} 表示一天多1小时

示例:这里写代码片前面的日期+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 '})"/>
注意:
#F{$dp.$D(\'d4332\',{M:-3,d:-2}) || $dp.$DV(\'2020-4-3\',{M:-3,d:-2})}
表示当 d4332 为空时, 采用 $dp.$DV(\'2020-4-3\',{M:-3,d:-2})} 的值作为最大值

使用 $dp.$DV 函数 可以将显式传入的值,加上定义的日期差量:
两个参数: value={字符类型}需要处理的值 , obj={对象类型}日期差量 
用法同上面的 $dp.$D 类似,如 $dp.$DV(\'2020-4-3\',{M:-3,d:-2}) 表示 2020-4-3减去3月零2

示例: 发挥你的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}) "/>

无效天 
可以使用此功能禁用周日至周六所对应的日期,相关属性:disabledDays (0至6 分别代表 周日至周六

示例: 禁用 周六 所对应的日期

<input id="d441" type="text" class="Wdate" onFocus="WdatePicker({disabledDays: [6] })"/>

注意:日期格式必须与 realDateFmt 和 realTimeFmt 一致
可以使用此功能禁用,所指定的一个或多个日期,只要你熟悉正则表达式,你可以尽情发挥
用法(正则匹配):
如果你熟悉正则表达式,会很容易理解下面的匹配用法
如果不熟悉,可以参考下面的常用示例
[‘2008-02-01’,’2008-02-29’] 表示禁用 2008-02-01 和 2008-02-29
[‘2008-..-01’,’2008-02-29’] 表示禁用 2008-所有月份-01 和 2008-02-29
[‘200[0-8]]-02-01’,’2008-02-29’] 表示禁用 [2000至2008]-02-01 和 2008-02-29
[‘^2006’] 表示禁用 2006年的所有日期

此外,您还可以使用 %y %M %d %H %m %s 等变量, 用法同动态日期限制 注意:%ld不能使用
[‘….-..-01’,’%y-%M-%d’] 表示禁用 所有年份和所有月份的第一天和今天
[‘%y-%M-#{%d-1}’,’%y-%M-#{%d+1}’] 表示禁用 昨天和明天

当然,除了可以限制日期以外,您还可以限制时间
[‘….-..-.. 10:00:00’] 表示禁用 每天10点 (注意 : 需要 使用 : )

示例:禁用 每个月份的 5日 15日 25日

<input id="d451" type="text" class="Wdate" onFocus="WdatePicker({disabledDates: ['5$'] })"/>

注意 : '5$' 表示以 5 结尾 注意 $ 的用法

示例:禁用 所有早于2000-01-01的日期

<input id="d452" type="text" class="Wdate" onFocus="WdatePicker({disabledDates: ['^19'] })"/>

注意: '^19' 表示以 19 开头 注意 ^ 的用法 
当然,可以使用minDate实现类似的功能 这里主要是 在演示 ^ 的用法

示例:配合min/maxDate使用,可以把可选择的日期分隔成多段
本示例本月可用日期分隔成五段 分别是: 1-3 8-10 16-24 26,27 29-月末

<input id="d453" type="text" class="Wdate" onFocus="WdatePicker({minDate: '%y-%M-01' ,maxDate: '%y-%M-%ld' ,disabledDates: ['0[4-7]$','1[1-5]$','2[58]$'] })"/>

示例:min/maxDate disabledDays disabledDates 配合使用 即使在要求非常苛刻的情况下也能满足需

<input id="d454" type="text" class="Wdate" onFocus="WdatePicker({minDate: '%y-%M-01' ,maxDate: '%y-%M-%ld' ,disabledDates: ['0[4-7]$','1[1-5]$','2[58]$'] ,disabledDays: [1,3,6] })"/>

示例: 禁用前一个小时和后一个小时内所有时间 使用 %y %M %d %H %m %s 等变量
鼠标点击 小时输入框时,你会发现当然时间对应的前一个小时和后一个小时是灰色的

<input id="d2a25" type="text" class="Wdate" onFocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',disabledDates: ['%y-%M-%d #{%H-1}\:..\:..','%y-%M-%d #{%H+1}\:..\:..'] })"/>

注意: %y %M %d等详见动态变量表

示例:#F{}也是可以使用的
本示例利用自定义函数 随机禁用0-23中的任何一个小时
打开小时选择框,你会发现有一个小时被禁用的,而且每次禁用的小时都不同

<script>
function randomH(){
//产生一个随机的数字 0-23 
var 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()}'] })"/>

有效天与有效日期
使用无效天和无效日期可以很方便的禁用不可用的日期,但是在只需要启用少部分日期的情况下,有效天和有效日期的功能就非常适合了.
关键属性: opposite 默认为false, 为true时,无效天和无效日期变成有效天和有效日期
示例:只启用 每个月份的 5日 15日 25日

<input id="d46" type="text" class="Wdate" onFocus="WdatePicker({opposite: true ,disabledDates: ['5$'] })"/>

注意 : '5$' 表示以 5 结尾 注意 $ 的用法

特殊天和特殊日期
特殊天和特殊日期的用法跟完全无效天和无效日期完全相同,但是opposite属性对其无效

关键属性:
specialDays (0至6 分别代表 周日至周六) 用法同无效天
specialDates 用法同无效日期,但是对时分秒无效

示例:高亮每周 周一 周五

<input id="d471" type="text" class="Wdate" onFocus="WdatePicker({specialDays: [1,5] })"/>

示例:高亮每月 1号 15号

<input id="d472" type="text" class="Wdate" onFocus="WdatePicker({specialDates: ['....-..-01','....-..-15'] })"/>
### 回答1: my97datepicker/4.8/wdatepicker.js是一个用于实现日期选择的JavaScript插件。它基于My97 DatePicker开发,提供了丰富的日期选择功能和样式定制选项。 这个插件可以用于网页中的日期选择控件,使用户能够方便地从一个日历中选择日期。它可以用于各种场景,比如用户生日选择、预定会议时间、预约医生等。在使用这个插件之前,需要在页面中引入相应的JavaScript文件,并将日期选择控件的HTML元素与插件绑定。 wdatepicker.js提供了一些日期选择的基本功能,比如切换月份、选择日期、上下翻页等。它还可以根据具体需求进行样式定制,包括日期的外观、选择范围、禁用某些日期等。通过设置插件的参数,可以实现个性化和灵活的日期选择控件。 这个插件还支持多种日期格式的输入和显示,可以根据需要自定义日期的显示方式。同时,它还提供了一些常用的日期操作和计算功能,比如获取当前日期、判断两个日期的大小比较等。 总之,my97datepicker/4.8/wdatepicker.js是一个功能丰富、灵活易用的日期选择插件,可以帮助开发人员简化日期选择的操作,提高用户体验。无论在哪个行业或场景中使用,都可以在网页中轻松实现日期选择的功能。 ### 回答2: my97datepicker/4.8/wdatepicker.js是一个用于日期选择的Javascript插件。该插件基于My97DatePicker,提供了丰富的日期选择功能和样式定制选项。 使用该插件,可以在网页中方便地添加日期选择器,让用户可以直接从日历中选择日期日期选择器可以显示当前日期、月份和年份,用户可以通过点击日历上的日期选择特定日期。该插件还支持快捷选择功能,例如可以选择某个月的第一天或最后一天。 此外,wdatepicker.js还具有一些其他的特性,例如可以禁用特定日期,设置日期的最大和最小可选范围,以及自定义日期的显示格式。插件还支持多语言,可以根据需要切换不同的语言版本。 对于开发人员来说,wdatepicker.js提供了丰富的API接口,可以通过编程方式控制日期选择器的行为。可以动态设置日期选择器的默认日期、最大最小可选范围、显示格式等。此外,还可以通过回调函数来处理用户选择日期后的操作。 总之,my97datepicker/4.8/wdatepicker.js是一个功能强大、灵活易用的日期选择插件,可以方便地在网页中添加日期选择功能,提升用户体验。 ### 回答3: my97datepicker/4.8/wdatepicker.js 是一个用于日期选择的JavaScript插件。该插件是基于My97 DatePicker开发的,用于在网页中添加日期选择功能。 使用该插件前,你需要在网页中引入wdatepicker.js文件。然后,可以在需要添加日期选择的文本框或其他元素上调用相关的函数,以创建一个日历窗口。 该插件提供了丰富的功能,包括日期选择、时间选择、范围选择等。你可以自定义日历的外观和行为,通过传递不同的参数来实现不同的效果。 在使用过程中,你可以根据自己的需求,设置日期的格式、起始日期、语言等。同时,该插件还提供了一些事件回调函数,用于处理日期选择后的操作。 wdatepicker.js兼容多种浏览器,包括IE、火狐、谷歌等主流浏览器,可以在各种网页项目中灵活使用。 总的来说,my97datepicker/4.8/wdatepicker.js 是一个方便实用的日期选择插件,可以轻松地在网页中添加日期选择功能,提升用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值