Javascript的月份是從0開始…

受教了~修正 etherpad 的日期顯示以 “yyyy-mm-mm hh-mm” 顯示的過程中發現月份總是少一個月
可是看 code 又沒有什麼問題
所以用 google 搜尋 “jquery + 少1個月” 及 “javascript + 少1個月” 發現了是 javascript 對於月份是少一個月 Orz…

所以 etherpad 的原本的寫法還不錯,貼上來註記一下

var converterPad = function (UNIX_timestamp) {
    var a = new Date(UNIX_timestamp);
    //原本的寫法是用英文顯示
    //var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    //後來改以數字顯示
    var months = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
    var year = a.getFullYear();
    var month = months[a.getMonth()];

    //這邊是原本想直接用function直接抓值,結果發現都少一個月,只好自己加1
    //var temp = a.getMonth() + 1;
    //var month = (( temp + 1 < 10) ? "0" : "") + temp;

    var date = (( a.getDate() < 10) ? "0" : "") + a.getDate();
    var hour = (( a.getHours() < 10) ? "0" : "") + a.getHours();
    var min = ((a.getMinutes() < 10) ? "0" : "") + a.getMinutes();
    //return date + '. ' + month + ' ' + year + ' ' + hour + ':' + min + ' ';
    return year + '-' + month + '-' + date + ' ' + hour  + ':' + min;
};
This entry was posted in etherpad, JavaScript. Bookmark the permalink.