javascript實現PHP的strtotime,time,date函數


習慣了用PHP strtotime(),time(),date()的函數,發現JS的日期操作起來好麻煩,於是自己寫了一個這三個函數的JS實現。

 

/**
 * 模仿PHP的strtotime()函數
 * strtotime('2012-07-27 12:43:43') OR strtotime('2012-07-27')
 * @return 時間戳
 */
function strtotime(str){
    var _arr = str.split(' ');
    var _day = _arr[0].split('-');
    _arr[1] = (_arr[1] == null) ? '0:0:0' :_arr[1];
    var _time = _arr[1].split(':');
    for (var i = _day.length - 1; i >= 0; i--) {
        _day[i] = isNaN(parseInt(_day[i])) ? 0 :parseInt(_day[i]);
    };
    for (var i = _time.length - 1; i >= 0; i--) {
        _time[i] = isNaN(parseInt(_time[i])) ? 0 :parseInt(_time[i]);
    };
    var _temp = new Date(_day[0],_day[1]-1,_day[2],_time[0],_time[1],_time[2]);
    return _temp.getTime() / 1000;
}

 

 

/**
 * 模仿PHP的time()函數
 * @return 返回當前時間戳
 */
function time(){
    return (new Date()).getTime() / 1000;
}

 

 

/**
 * 模仿PHP的date()函數
 * strtotime('Y-m-d H:i:s');
 * @param format 只支持 'Y-m-d H:i:s','Y-m-d','H:i:s' 三種調用方式
 * @param time 為空時,取當前時間
 * @return 日期格式化的字符串
 */
function date(format,time){
    var _temp = (time != null) ? new Date(time*1000) : new Date();
    var _return = '';

    if(/Y-m-d/.test(format)){
        var _day = [_temp.getFullYear(),addzero(1 + _temp.getMonth()),addzero(_temp.getDate())];
        _return = _day.join('-');
    }
    if(/H:i:s/.test(format)){
        var _time = [addzero(_temp.getHours()),addzero(_temp.getMinutes()),addzero(_temp.getSeconds())];
        _return += ' ' +_time.join(':');
    }
    return _return;
    function addzero(i){
        if(i<=9){
            return '0' + i;
        }else{
            return i;
        }
    }
}

//alert(date('Y-m-d H:i:s'));
//alert(date('Y-m-d'));

var str = '2012-01-06';
alert(str);
alert(date('Y-m-d H:i:s',strtotime(str)));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM