My97DatePickerBeta 日历插件

时间:2021-10-01 11:10:38

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
body{height:5000px}
*{margin:0; padding:0;}
ul {overflow:hidden;}
li {float:left; margin:20PX 100px 200px 0; list-style: none;}
input{width: 300px;}

div{overflow:hidden;}
div input{margin:20PX 100px 200px 50px; }
#span1{ display:block;width:100px; height:50px; background: #ccc;}
</style>
<script src="My97DatePicker/WdatePicker.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<ul>
<li>最简单显示:(年月日)
<input type="text" class="Wdate" placeholder="yyyy-mm-dd" onFocus="WdatePicker({lang:'zh-cn'})">
</li>

<li >显示年月日:
<input type="text" class="Wdate" placeholder="dateFmt:'yyyyMMdd'" onFocus="WdatePicker({lang:'zh-cn',dateFmt:'yyyy-MM-dd'})">
</li>

<li>显示年:
<input type="text" class="Wdate" placeholder="dateFmt:'yyyy'" onFocus="WdatePicker({lang:'zh-cn',dateFmt:'yyyy'})">
</li>

<li>显示年月:
<input type="text" class="Wdate" placeholder="dateFmt:'yyyyMM'" onFocus="WdatePicker({lang:'zh-cn',dateFmt:'yyyy-MM'})">
</li>

<li>显示年月日时分秒:
<input type="text" class="Wdate" placeholder="dateFmt:'yyyyMMdd HH:mm:ss'" onFocus="WdatePicker({lang:'zh-cn',dateFmt:'yyyy-MM-dd HH:mm:ss'})">
</li>

<li>显示格式化(年月日时分秒):
<input type="text" class="Wdate" placeholder="dateFmt:'yyyy年MM月dd日 HH时:mm分:ss秒'" onFocus="WdatePicker({lang:'zh-cn',dateFmt:'yyyy年MM月dd日 HH时:mm分:ss秒'})">
</li>

<li>显示年月日时分秒(只读,不能输入时间):
<input type="text" class="Wdate" placeholder="readOnly:true" onFocus="WdatePicker({lang:'zh-cn',readOnly:true})">
</li>

<li>隐藏清空按钮:
<input type="text" class="Wdate" placeholder="isShowClear:false" onFocus="WdatePicker({lang:'zh-cn',isShowClear:false})">
</li>

<li>设置今天为最小日期:
<input type="text" class="Wdate" placeholder="minDate:new Date()" onFocus="WdatePicker({lang:'zh-cn',minDate:new Date()})">
</li>

<li>设置今天为最大日期:
<input type="text" class="Wdate" placeholder="maxDate:new Date()" onFocus="WdatePicker({lang:'zh-cn',maxDate:new Date()})">
</li>

<li>设置明天为最小日期:
<input type="text" class="Wdate" placeholder="minDate:'%y-%M-{%d+1}'" onFocus="WdatePicker({lang:'zh-cn',minDate:'%y-%M-{%d+1}'})">
</li>

<li>只能选择本月第一天到最后一天:
<input type="text" class="Wdate" placeholder="minDate:'%y-%M-01',maxDate:'%y-%M-%ld'" onFocus="WdatePicker({lang:'zh-cn',minDate:'%y-%M-01',maxDate:'%y-%M-%ld'})">
</li>

<li>显示周:
<input type="text" class="Wdate" placeholder="readOnly:true,isShowWeek:true" onFocus="WdatePicker({lang:'zh-cn',readOnly:true,isShowWeek:true})">
</li>

</ul>

<hr /><hr /><hr /><hr /><hr />

<!-- 下面演示My97DatePicker的一些效果 -->
<ul>
<li>点击输入框触发
<input type="text" onClick="WdatePicker()"/>
</li>

<li>图标触发(此时只有点击图标才能弹出日期选择框)
<input id="iconInvoke" type="text"/>
<img onclick="WdatePicker({el:'iconInvoke'})" src="js/My97DatePicker/skin/datePicker.gif" width="16" height="22" align="absmiddle">
</li>

<li>禁止清空(即用户选择完日期后,不能直接在文本框中按detele键删掉或清空,只能重新选择日期)
<input type="text" class="Wdate" onFocus="WdatePicker({isShowClear:false, readOnly:true})"/>
</li>

<li>自定义每周的第一天(4.6新增:设置周一为每周第一天)
<input type="text" onfocus="WdatePicker({firstDayOfWeek:1})"/>
</li>

<li>自定义日期显示格式(这里设置为yyyy-MM-dd HH:mm,这一点和Java相同,还可设置其它的如'yyyy年MM月')
<input type="text" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm'})"/>
</li>

<li>双月日历功能(4.6新增:可以同时弹出两个月的日历)
<input type="text" onfocus="WdatePicker({doubleCalendar:true, dateFmt:'yyyy-MM-dd'})"/>
</li>

<li>限制日期范围为2013-09-14到2013-9-20
<input type="text" onfocus="WdatePicker({minDate:'2013-09-14', maxDate:'2013-9-20'})"/>
</li>

<li>限制日期范围为2013年9月到2013年10月
<input type="text" onfocus="WdatePicker({minDate:'2013-9', maxDate:'2013-10-31'})"/>
</li>

<li>限制日期范围为10:00:20到14:30:00
<input type="text" onfocus="WdatePicker({dateFmt:'HH:mm:ss', minDate:'10:00:20', maxDate:'14:30:00'})"/>
</li>

<li>限制日期范围为2013-9-14 10:30到2013-9-15 16:40
<input type="text" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm', minDate:'2013-09-14 10:30', maxDate:'2013-09-15 16:40'})"/>
</li>

<li>只能选择今天以前的日期(包括今天)
<input type="text" onfocus="WdatePicker({maxDate:'%y-%M-%d'})"/>
</li>

<li>只能选择今天以后的日期(不包括今天)(这里使用了My97DatePicker的运算表达式)
<input type="text" onfocus="WdatePicker({minDate:'%y-%M-{%d+1}'})"/>
</li>

<li>只能选择本月日期的第一天到最后一天
<input type="text" onfocus="WdatePicker({minDate:'%y-%M-01', maxDate:'%y-%M-%ld'})"/>
</li>

<li>只能选择今天10:20至明天14:28的日期
<input type="text" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm', minDate:'%y-%M-%d 10:20', maxDate:'%y-%M-{%d+1} 14:28'})"/>
</li>

<li>只能选择20个小时前到30个小时后的日期(这里使用了My97DatePicker的运算表达式)
<input 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'})"/>
</li>

<li>后面的日期大于前面的日期,且两个日期都不能大于2020-10-01
<input type="text" id="date01" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'date02\')||\'2020-10-01\'}'})"/>

<input type="text" id="date02" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'date01\')}', maxDate:'2020-10-01'})"/>
</li>

<li>后面的日期最少要比前面的日期大3天
<input type="text" id="date03" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'date04\',{d:-3});}'})"/>

<input type="text" id="date04" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'date03\',{d:3});}'})"/>
</li>

<li>禁用周六日
<input type="text" onFocus="WdatePicker({disabledDays:[0,6]})"/>
</li>

<li>禁用每月的5日15日25日('5$'表示以5结尾)
<input type="text" onFocus="WdatePicker({disabledDates:['5$']})"/>
</li>

<li>禁用所有早于2000-01-01的日期('^19'表示以19开头,可用minDate实现类似功能,这里主要是演示^的用法)
<input type="text" onFocus="WdatePicker({disabledDates:['^19']})"/>
</li>

<li>将本月可用日期分隔成五段,分别是: 1-3、8-10、16-24、26、27、29到月末
<input type="text" onFocus="WdatePicker({minDate:'%y-%M-01', maxDate:'%y-%M-%ld', disabledDates:['0[4-7]$','1[1-5]$','2[58]$']})"/>
</li>

<li>将本月可用日期分隔成五段,分别是: 1-3、8-10、16-24、26、27、29到月末,并禁用每个周一、三、六
<input type="text" onFocus="WdatePicker({minDate:'%y-%M-01', maxDate:'%y-%M-%ld', disabledDates:['0[4-7]$','1[1-5]$','2[58]$'], disabledDays:[1,3,6]})"/>
</li>

<li>禁用前一个小时和后一个小时内所有时间(鼠标点击日期输入框时,你会发现当前时间对应的前一个小时和后一个小时是灰色的)
<input type="text" onFocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm', disabledDates:['%y-%M-%d {%H-1}\:..\:..','%y-%M-%d {%H+1}\:..\:..']})"/>
</li>
</ul>

只能选择7天以内日期(包括今天)<br/>
注意:假设用户先选择后面日期为后天,然后再选择前面日期,此时前面日期允许选择今天以前的5天<br/>
注意:这是为了将来的编辑用途(比方说这俩日期是一个活动的起止日期,用户有权在发布活动后回来修改日期)<br/>
<div>
<input type="text" id="startTime" name="startTime" onFocus="WdatePicker({isShowClear:false, readOnly:true, dateFmt:'yyyy-MM-dd HH:mm', maxDate:'#F{$dp.$D(\'endTime\')}', minDate:'#F{$dp.$D(\'endTime\',{d:-7})||\'%y-%M-%d\'}'})"/>

<input type="text" id="endTime" name="endTime" onFocus="WdatePicker({isShowClear:false, readOnly:true, dateFmt:'yyyy-MM-dd HH:mm', minDate:'#F{$dp.$D(\'startTime\')}', maxDate:'#F{$dp.$D(\'startTime\',{d:8});}'})"/>
</div>

</body>
</html>