1. 程式人生 > >js中時間比較

js中時間比較

/**
 * 日期解析,字串轉日期
 * @param dateString 可以為2017-02-16,2017/02/16,2017.02.16
 * @returns {Date} 返回對應的日期物件
 */
function dateParse(dateString){
    var SEPARATOR_BAR = "-";
var SEPARATOR_SLASH = "/";
var SEPARATOR_DOT = ".";
var dateArray;
if(dateString.indexOf(SEPARATOR_BAR) > -1){
        dateArray = dateString.split
(SEPARATOR_BAR); }else if(dateString.indexOf(SEPARATOR_SLASH) > -1){ dateArray = dateString.split(SEPARATOR_SLASH); }else{ dateArray = dateString.split(SEPARATOR_DOT); } return new Date(dateArray[0], dateArray[1]-1, dateArray[2]); }; /** * 日期比較大小 * compareDateString大於dateString,返回1;
* 等於返回0; * compareDateString小於dateString,返回-1 * @param dateString 日期 * @param compareDateString 比較的日期 */ function dateCompare(dateString, compareDateString){ if(isEmpty(dateString)){ alert("dateString不能為空"); return; } if(isEmpty(compareDateString)){ alert("compareDateString不能為空"
); return; } var dateTime = dateParse(dateString).getTime(); var compareDateTime = dateParse(compareDateString).getTime(); if(compareDateTime > dateTime){ return 1; }else if(compareDateTime == dateTime){ return 0; }else{ return -1; } }; /** * 判斷日期是否在區間內,在區間內返回true,否返回false * @param dateString 日期字串 * @param startDateString 區間開始日期字串 * @param endDateString 區間結束日期字串 * @returns {Number} */ function isDateBetween(dateString, startDateString, endDateString){ if(isEmpty(dateString)){ alert("dateString不能為空"); return; } if(isEmpty(startDateString)){ alert("startDateString不能為空"); return; } if(isEmpty(endDateString)){ alert("endDateString不能為空"); return; } var flag = false; var startFlag = (dateCompare(dateString, startDateString) < 1); var endFlag = (dateCompare(dateString, endDateString) > -1); if(startFlag && endFlag){ flag = true; } return flag; }; /** * 判斷日期區間[startDateCompareString,endDateCompareString]是否完全在別的日期區間內[startDateString,endDateString] * 即[startDateString,endDateString]區間是否完全包含了[startDateCompareString,endDateCompareString]區間 * 在區間內返回true,否返回false * @param startDateString 新選擇的開始日期,如輸入框的開始日期 * @param endDateString 新選擇的結束日期,如輸入框的結束日期 * @param startDateCompareString 比較的開始日期 * @param endDateCompareString 比較的結束日期 * @returns {Boolean} */ function isDatesBetween(startDateString, endDateString, startDateCompareString, endDateCompareString){ if(isEmpty(startDateString)){ alert("startDateString不能為空"); return; } if(isEmpty(endDateString)){ alert("endDateString不能為空"); return; } if(isEmpty(startDateCompareString)){ alert("startDateCompareString不能為空"); return; } if(isEmpty(endDateCompareString)){ alert("endDateCompareString不能為空"); return; } var flag = false; var startFlag = (dateCompare(startDateCompareString, startDateString) < 1); var endFlag = (dateCompare(endDateCompareString, endDateString) > -1); if(startFlag && endFlag){ flag = true; } return flag; }
var currentTime=new Date();//當前時間
var currHour=currentTime.getHours();//當前小時
var currMinute=currentTime.getMinutes();//當前分鐘