1. 程式人生 > >js的Date.parse()方法和getTime()的坑

js的Date.parse()方法和getTime()的坑

JS用Date.gettime("yyy-MM-dd hh:mm:ss")解析時間格式,IE8以下的環境下出現NaN, safari瀏覽器出現NaN

解法

 1 function time(){
 2 
 3      var timeBegin = ''2018-09-18 12:00:00"
 4 
 5   var startTime =timeBegin.replace(/\-/g, "/"); // 需要將字串日期中的 ‘-’ 替換成 ‘/’ ,
 6   return new Date(startTime).getTime();// 這裡得的就是時間戳,不會是NaN
 7 
 8   function test() {
9     var dateStr = "02/01/2015" 10     var date = Date.parse(dateStr ) 11 12     alert(date ); 13   }

js的Date.parse()方法和getTime()的陷阱

getTime()和Date.parse()方法都是返回某個時間到1970年1月1日0:00的時間戳,但是下面程式碼結果卻是 1970年1月1日08:00 開始,這樣就相差八個小時

function startTime() {
    let date = new Date,
        year = date.getFullYear(),
        month 
= date.getMonth() + 1, day = date.getDate(); // 因為當年月日中間是 ‘-’ 短橫線的時候,它的解析是用UTC 時區處理,而不是用本地時區處理的,因此相差八個小時,就成了這個時間點到1970年1月1日08:00的毫秒數。 // 解決辦法就是將日期中的短橫線替換成 ‘/’ , // getTime()和Date.parse()方法 都會有相同的情況 return Date.parse(year + '-' + month + '-' + day) ; }