專案開發中會用到一些有關時間的上的處理,比如根據某個時間返回該時間的前後一段時間,判斷兩個時間點的相隔時間等。
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');
};