js date對象傳參獲取特定日期的時間戳
當我們想要通過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對象傳參獲取特定日期的時間戳