My97DatePicker的基本时间格式的使用
下载地址:http://www.my97.net/dp/down.asp(官方下载地址)
二.具体使用
1.在页面中引用该组件JS文件:
<script type="text/JavaScript" src="My97DatePicker/WdatePicker.js"></script>
2:源代码(仅供参考,具体情况,具体分析)
2.1 Jsp源码
<div class="form bgwhite">
<ul>
<li><select id="timeItem" onchange="changeTime()">
<option value="hour">按时</option>
<option value="day">按日</option>
<option value="week">按周</option>
<option value="month">按月</option>
<option value="quarter">按季</option>
<option value="year">按年</option>
</select></li>
<li><label>开始时间:</label> <input type="text" id="startTime"
value="" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:'true'});"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:'true'});"> <label
id="endTimeTitle">截止时间:</label> <input type="text" id="endTime"
value="" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:'true'});"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:'true'});"></li>
<li><label>属地:</label> <select id="regionCode">
<option value="">全部</option>
<gct:option list="${getRegionList}" left="REGION_CD"
right="REGION_CN_NM" withNull="false" value="REGION_CD" />
</select>
</li>
<gct:res code="RES01111">
<li><label><span onclick="defaultChangeDivShow()"
class="btn">统计</span></label></li>
</gct:res>
<div class="clear"></div>
</ul>
</div>
2.2 JavaScript脚本源码
/* 这个方法主要是拼接出选取时间所在周的周一与周日,然后进行显示*/
function funcccS(){
$dp.$('S').value= $dp.$('startTime').value;
var now = new Date($dp.$('startTime').value);
var nowTime = now.getTime() ;
var day = now.getDay();
var oneDayTime = 24*60*60*1000 ;
//显示周一
var MondayTime = nowTime - (day-1)*oneDayTime ;
//显示周日
var SundayTime = nowTime + (7-day)*oneDayTime ;
//初始化日期时间
var monday = new Date(MondayTime);
var sunday = new Date(SundayTime);
var s,e;
s=monday.getDate();
e=sunday.getDate();
if(monday.getDate()<10){
s="0"+monday.getDate();
}
if(sunday.getDate()<10){
e="0"+sunday.getDate();
}
$dp.$('startTime').value=sunday.getFullYear()+"("+(monday.getMonth()+1)+s+"-"+e+")";
}
/* 这个方法主要是拼接出选取时间所在周的周一与周日,然后进行显示*/
function funcccE(){
$dp.$('E').value= $dp.$('endTime').value;
var now = new Date($dp.$('endTime').value);
var nowTime = now.getTime() ;
var day = now.getDay();
var oneDayTime = 24*60*60*1000 ;
//显示周一
var MondayTime = nowTime - (day-1)*oneDayTime ;
//显示周日
var SundayTime = nowTime + (7-day)*oneDayTime ;
//初始化日期时间
var monday = new Date(MondayTime);
var sunday = new Date(SundayTime);
var s,e;
s=monday.getDate();
e=sunday.getDate();
if(monday.getDate()<10){
s="0"+monday.getDate();
}
if(sunday.getDate()<10){
e="0"+sunday.getDate();
}
$dp.$('endTime').value=sunday.getFullYear()+"("+(monday.getMonth()+1)+s+"-"+e+")";
}
/*根据选择类型的不同进行相应的格式化*/
/* 格式化條件時間格式 author:lmw */
function changeTime(){
var time= $("#timeItem").val();
var monthStartTime=document.getElementById("startTime");
var monthEndTime =document.getElementById("endTime");
if(time=="hour"){
$("#endTimeTitle").hide();
$("#endTime").hide();
monthStartTime.onfocus=function(){
WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:'true'});
}
monthStartTime.onclick=function(){
WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:'true'});
}
}
if(time=="day"){
$("#endTime").show();
$("#endTimeTitle").show();
monthEndTime.onfocus=function(){
WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:'true'});
}
monthEndTime.onclick=function(){
WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:'true'});
}
monthStartTime.onfocus=function(){
WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:'true'});
}
monthStartTime.onclick=function(){
WdatePicker({dateFmt:'yyyy-MM-dd',readOnly:'true'});
}
}
if(time=="week"){
$("#endTime").show();
$("#endTimeTitle").show();
monthEndTime.onfocus=function(){
WdatePicker({isShowWeek:true,onpicked:function() {funcccE();},errDealMode:3,readOnly:'true'});
}
monthEndTime.onclick=function(){
/* WdatePicker({isShowWeek:true,onpicked:function() {$dp.$('endTime').value=$dp.cal.getP('W','WW');}}); */
}
monthStartTime.onfocus=function(){
WdatePicker({isShowWeek:true,onpicked:function() {funcccS();},errDealMode:3,readOnly:'true'});
}
monthStartTime.onclick=function(){
/* WdatePicker({isShowWeek:true,onpicked:function() {$dp.$('startTime').value=$dp.cal.getP('W','W');}}); */
}
}
if(time=="month"){
$("#endTime").show();
$("#endTimeTitle").show();
monthEndTime.onfocus=function(){
WdatePicker({dateFmt:'yyyy-MM',readOnly:'true'});
}
monthEndTime.onclick=function(){
WdatePicker({dateFmt:'yyyy-MM',readOnly:'true'});
}
monthStartTime.onfocus=function(){
WdatePicker({dateFmt:'yyyy-MM',readOnly:'true'});
}
monthStartTime.onclick=function(){
WdatePicker({dateFmt:'yyyy-MM',readOnly:'true'});
}
}
if(time=="quarter"){
$("#endTime").show();
$("#endTimeTitle").show();
monthEndTime.onfocus=function(){
WdatePicker({dateFmt:'yyyy年MM季度',disabledDates:['....-0[5-9]-..','....-1[0-2]-..'],startDate:['%y-01-01'],readOnly:'true'});
}
monthEndTime.onclick=function(){
WdatePicker({dateFmt:'yyyy年MM季度',disabledDates:['....-0[5-9]-..','....-1[0-2]-..'],startDate:['%y-01-01'],readOnly:'true'});
}
monthStartTime.onfocus=function(){
WdatePicker({dateFmt:'yyyy年MM季度',disabledDates:['....-0[5-9]-..','....-1[0-2]-..'],startDate:['%y-01-01'],readOnly:'true'});
}
monthStartTime.onclick=function(){
WdatePicker({dateFmt:'yyyy年MM季度',disabledDates:['....-0[5-9]-..','....-1[0-2]-..'],startDate:['%y-01-01'],readOnly:'true'});
}
}
if(time=="year"){
$("#endTime").show();
$("#endTimeTitle").show();
monthEndTime.onfocus=function(){
WdatePicker({dateFmt:'yyyy',readOnly:'true'});
}
monthEndTime.onclick=function(){
WdatePicker({dateFmt:'yyyy',readOnly:'true'});
}
monthStartTime.onfocus=function(){
WdatePicker({dateFmt:'yyyy',readOnly:'true'});
}
monthStartTime.onclick=function(){
WdatePicker({dateFmt:'yyyy',readOnly:'true'});
}
}
}
因为我介绍的是My97的基本时间格式的使用,所以我的这个页面也包含常用的几种基本格式,默认是显示小时(注意我这里的小时并不是传统意义上的小时(hh:mm:dd),我这里的小时时间格式是(yyyy-MM-dd),之所以我这里小时的时间格式是这样,业务需求的需要)
2.3 效果图
按小时
按日
按星期
按月
按季度
按年
三。常用的配置信息(更多配置信息请参考,官方详细配置地址:http://www.my97.net/dp/demo/index.htm)
常用的配置信息在 WdatePicker.js 文件中定义了。
$wdate:true,
$dpPath:"",
$crossFrame:true,
doubleCalendar:false, //是否双月日历
autoUpdateOnChanged:false,
position:{}, //位置如:position:{left:100,top:50}
lang:"auto",
skin:"default", //皮肤
dateFmt:"yyyy-MM-dd", //日期格式
realDateFmt:"yyyy-MM-dd",
realTimeFmt:"HH:mm:ss",
realFullFmt:"%Date %Time",
minDate:"1900-01-01 00:00:00", //最小日期
maxDate:"2099-12-31 23:59:59", //最大日期
startDate:"", //起始日期
alwaysUseStartDate:false, //当日期框无论是何值,始终使用 startDate 做为起始日期
yearOffset:1911,
firstDayOfWeek:0, //自定义星期的第一天
isShowWeek:false, //是否显示周
highLineWeekDay:true, //高亮周日
isShowClear:true, //是否显示清空
isShowToday:true, //是否显示今天
isShowOK:true, //是否显示OK
isShowOthers:true,
readOnly:false, //是否只读
qsEnabled:true,
errDealMode:0, //自动纠错功能
//0 在输入错误日期时,会先提示
//1 在输入错误日期时,自动恢复前一次正确的值
//2 在输入错误日期时,不做提示和更改,只是做一个标记,但此时日期框不会马上隐藏
autoPickDate:null, //点两次才能选择日期的原因
//为false时 点日期的时候不自动输入,而是要通过确定才能输入
//为true时 即点击日期即可返回日期值
//为null时(推荐使用) 如果有时间置为false 否则置为true
specialDates:null, //特殊日期
specialDays:null, //特殊天
disabledDates:null, //无效日期 如:disabledDates:['5$']
disabledDays:null, //无效天 如:disabledDays:[6]
opposite:false, //有效日期