js實現類似php中strtotime函數和timetostr的日期轉換/互換功能

<script type="text/javascript">  
//日期(格式:yyyy-mm-dd H:i:s) ---轉換爲以秒爲單位的unix時間軸(格式:xxxxxx) 方法一:  
//摘取天上星:http://blog.csdn.net/zqtsx  
function strtotime1(datetime){   
    var tmp_datetime = datetime.replace(/:/g,'-');   
    tmp_datetime = tmp_datetime.replace(/ /g,'-');   
    var arr = tmp_datetime.split("-");   
    var y=arr[0];  
    var m=arr[1]-1;  
    var d=arr[2];  
    var h=arr[3]-8; ///兼容八小時時差問題  
    var i=arr[4];  
    var s=arr[5];  
    //兼容無"時:分:秒"模式  
    if(arr[3]=='undefined' || isNaN(h)){  
      h=00;  
    }  
    if(arr[4]=='undefined' || isNaN(i)){  
      i=00;  
    }  
    if(arr[5]=='undefined' || isNaN(s)){  
      s=00;  
    }  
    var now = new Date(Date.UTC(y,m,d,h,i,s));   
    return parseInt(now.getTime()/1000);   
}  
//日期(格式:yyyy-mm-dd H:i:s) ---轉換爲以秒爲單位的unix時間軸(格式:xxxxxx) 方法二:  
function strtotime(datetime){  
    var _ = datetime.split(' ');  
    var ymd = _[0];  
    var his = _[1];  
    var str = ymd.split('-');  
    var fix = his.split(':');  
    var year  = str[0] - 0;   
    var month = str[1] - 0 - 1;   
    var day   = str[2] - 0;   
    var hour   = fix[0] - 0;   
    var minute = fix[1] - 0;   
    var second = fix[2] - 0;  
    //兼容無"時:分:秒"模式  
    if(fix[0]=='undefined' || isNaN(hour)){  
      hour=00;  
    }  
    if(fix[1]=='undefined' || isNaN(minute)){  
      minute=00;  
    }  
    if(fix[2]=='undefined' || isNaN(second)){  
      second=00;  
    }  
    time = (new Date(year, month, day, hour, minute, second)).getTime();  
    //alert(time);  
    return parseInt( time / 1000 );  
}  
//日期24小時格式下,個位數前補零  
//摘取天上星:http://blog.csdn.net/zqtsx  
function fillZero(v){  
    if(v<10){v='0'+v;}  
    return v;  
}  
//以秒爲單位的unix時間軸轉換成日期 轉換後的格式爲:yyyy-mm-dd H:i:s   方法一:  
function timetostr1(unix) {   
    var now = new Date(parseInt(unix) * 1000);   
    //12小時格式日期轉換獲取方法該方法無法應用於反向轉換,因爲不精確  
    //return now.toLocaleString().replace(/年|月/g, '-').replace(/日/g, '').replace(/上午|下午/g,'');   
    //精確到24小時格式  
    return now.getFullYear()+'-'+fillZero(now.getMonth()+1)+'-'+fillZero(now.getDate())+' '+fillZero(now.getHours())+':'+fillZero(now.getMinutes())+':'+fillZero(now.getSeconds());  
}  
//linux時間秒 轉換成日期格式  
//uninxtime以秒爲單位的unix時間  
//type日期格式type=12爲12小時格式,其它或不填寫即爲24小時格式  
//show_type是否顯示星期幾show_type=1即爲顯示星期幾,並帶有年月日的漢字日期單位,不填寫或其它默認爲不現實星期幾  
//方法二:  
//摘取天上星:http://blog.csdn.net/zqtsx  
function timetostr(unixtime,type,show_type){  
      var d=new Date(parseInt(unixtime) * 1000);  
      var Week=['星期天','星期一','星期二','星期三','星期四','星期五','星期六'];  
      Y=d.getFullYear();  
      M=fillZero(d.getMonth()+1);  
      D=fillZero(d.getDate());  
      W=Week[d.getDay()]; //取得星期幾  
      H=fillZero(d.getHours());  
      I=fillZero(d.getMinutes());  
      S=fillZero(d.getSeconds());  
      //12小時制顯示模式  
      if(type && type==12){  
        //若要顯示更多時間類型諸如中午凌晨可在下面添加判斷  
        if(H<=12){  
          H='上午 '+H;  
        }else if(H>12 && H<24){  
          H-=12;  
          H='下午 '+fillZero(H);  
        }else if(H==24){  
          H='凌晨 00';  
        }  
      }  
      if(show_type && show_type=='1') return Y+'年'+M+'月'+D+'日'+' '+W+' '+H+':'+I+':'+S;  
      return Y+'-'+M+'-'+D+' '+H+':'+I+':'+S;  
      //可添加擴展每秒更新時間 組建 摘取天上星:http://blog.csdn.net/zqtsx  
}  
</script>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章