1. 程式人生 > >js date對象傳參獲取特定日期的時間戳

js date對象傳參獲取特定日期的時間戳

iphone mon strong 設定 time函數 function rda phone 格式不正確

當我們想要通過js獲取某一特定時間的時間戳時,會通過給date對象傳參再通過getTime函數來獲取,傳遞的參數格式也有不同形式。有些時候,可能會因為自己傳入參數的格式不正確而導致date對象invalid,進而導致邏輯出現錯誤。

date對象傳遞的參數主要有字符串以及年月日等的數字,如下:

new Date( year, month, date, hrs, min, sec)

參數說明:   year的值為:需設定的年份-1900。例如需設定的年份是1997則year的值應為97,即1997-1900的結果。所以Date中可設定的年份最小為1900;   month的值域為0~11,0代表1月,11表代表12月;   date的值域在1~31之間;   hrs的值域在0~23之間。從午夜到次日淩晨1點間hrs=0,從中午到下午1點間hrs=12;   min和sec的值域在0~59之間。   例 Date day=new Date(11,3,4);   //day中的時間為:04-Apr-11 12:00:00 AM

這種方法參數的容錯率好,即使超出正常的數值範圍也能正確的轉化;其次,各瀏覽器解析的兼容性比較好。可以兼容ie瀏覽器。

new Date(“year/month/date hrs:min:sec”)

參數說明: hrs的值域在0~23之間。從午夜到次日淩晨1點間hrs=0,從中午到下午1點間hrs=12;   min和sec的值域在0~59之間。

chrome瀏覽器對參數的容錯比較好,safari、ie、iphone手機等對超出值域的時分秒解析時會報錯。如果是24點的就直接寫次日的0點。

當然直觀的將日期的字符串轉化為date對象可以使得代碼更易讀,對於不是自己寫的日期字符串,年月日可能是用“—”或者“/”隔開,可以用一個簡單的函數做下處理再去生成date對象,如

function newDate(strdate) {
    var arr = strdate.split(/[- : \/]/);
    date = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]);
    return date;
}

js date對象傳參獲取特定日期的時間戳