项目开发中会用到一些有关时间的上的处理,比如根据某个时间返回该时间的前后一段时间,判断两个时间点的相隔时间等。
1、获取某个时间点的前后一段时间
根据某个时间点获取前后多少年、月、日、时、分、秒函数
/** * [根据某个时间点获取前后多少年、月、日、时、分、秒] * @param {[type]} dateNow [需要获取的时间点] * @param {[type]} stepData [具体时间段区间] * @param {[type]} flag [标志位,用来区分年、月、日、时、分、秒] * @return {[type]} [返回新的时间] */var getTimes = function(dateNow, stepData, flag){ var date = dateNow.split(' ')[0].split('-'), time = dateNow.split(' ')[1].split(':'), year = date[0], month = date[1]-1, day = date[2], second = time[2], minute = time[1], hour = time[0]; var dateNew = new Date(year, month, day, hour, minute, second, 00); switch(flag) { case "year": stepData && (dateNew.setFullYear(dateNew.getFullYear() + stepData)); break; case "month": stepData && (dateNew.setMonth(dateNew.getMonth()+1 + stepData)); break; case "date": stepData && (dateNew.setDate(dateNew.getDate() + stepData)); break; case "hour": stepData && (dateNew.setHours(dateNew.getHours() + stepData)); break; case "minute": stepData && (dateNew.setMinutes(dateNew.getMinutes() + stepData)); break; case "second": stepData && (dateNew.setMilliseconds(dateNew.getSeconds() + stepData)); break; default: stepData && (dateNew = new Date(dateNew.getTime() + stepData)); break; } var t = { Y:dateNew.getFullYear(), m:dateNew.getMonth()+1, d:dateNew.getDate(), h:dateNew.getHours(), M:dateNew.getMinutes(), s:dateNew.getSeconds() } function offset(num){//个位前补0 return (num < 10 ? ('0'+num):num); } return t.Y+'-'+offset(t.m)+'-'+offset(t.d)+" "+offset(t.h)+":"+add0(t.M)+":"+offset(t.s);}
2、计算两个时间的时间间隔
var startTime = $("#startTime").val();//开始时间var endTime = $("#endTime").val();//结束时间var subTime = (toDate(endTime).getTime()-toDate(startTime).getTime())/1000/3600/24;function toDate(strDateTime) { var strDateTimes = strDateTime.split(' '), strDate = strDateTimes[0].split('-'), year = Number(strDate[0]), month = Number(strDate[1]) - 1, day = Number(strDate[2]), strTime = strDateTimes[1].split(':'), hour = Number(strTime[0]), minute = Number(strTime[1]), secend = Number(strTime[2]); return new Date(year, month, day, hour, minute, secend);}
3、时间控件赋值
function getTime(isEndTime){ var date = new Date(); var t = { m:date.getMonth()+1, d:date.getDate(), h:date.getHours(), M:date.getMinutes(), s:date.getSeconds() } function offset(num){//个位前补0 return (num < 10 ? ('0'+num):num); } return date.getFullYear() + '-' + offset(t.m) +'-'+ offset(t.d) + ' ' + (isEndTime ? '23:59:59':'00:00:00');};