因为要做一个加班时长的计算。

所以用到了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); 
} 



Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐