因为要做一个加班时长的计算。
所以用到了datetimebox,始终没有实现显示小时,只能把小时 分钟等一起显示了。
<s:textfield name="startdate" id="startdate" editable="false" cssClass="easyui-datetimebox" cssStyle="width:150px;">
<s:param name="value"><s:date name="startdate" format="yyyy-MM-dd" /></s:param>
</s:textfield>
<s:textfield name="enddate" id="enddate" editable="false" cssClass="easyui-datetimebox" cssStyle="width:150px;">
<s:param name="value"><s:date name="enddate" format="yyyy-MM-dd" /></s:param>
</s:textfield>
//本想直接写onblur事件,发现不起作用。查找datebox的源代码发现只有onSelect方法。
//后来看到继承自combo,有onchange事件,此处用上。
$("#startdate").datetimebox({
formatter:formatDate,
onChange:calTimes
});
$("#enddate").datetimebox({
formatter:formatDate,
onChange:calTimes
});
//日期格式化
function formatDate(date){
var month = date.getMonth()+1;
if( "" != date ){
if( date.getMonth() +1 < 10 ){
month = '0' + (date.getMonth() +1);
}
var day = date.getDate();
if( date.getDate() < 10 ){
day = '0' + date.getDate();
}
return date.getFullYear()+'-'+month+'-'+day+" "+date.getHours()+":00:00";//将2011-01-01 17:20:08 这种格式转换为2011-01-01 17:00:00
}else{
return "";
}
}
//计算时长
function calTimes(){
var sday=$("#startdate").datetimebox("getValue");
var eday=$("#enddate").datetimebox("getValue");
var dateM=(Date.parse(Swith(eday))-Date.parse(Swith(sday)));
$("#timeLength").val(GetTime(dateM));
}
function Swith(strdate){
var strYear=strdate.substring(0,4);
var strMonth=strdate.substring(5,7);
var strDay=strdate.substring(8,10);
var strHours=strdate.substring(11,13);
var strMinutes=strdate.substring(14,16);
return new Date(strYear,strMonth,strDay,strHours,strMinutes);
}