1. 程式人生 > >PHP封裝時間類

PHP封裝時間類


開發中經常用到時間的一些操作,比如昨天,今天,前天,近七天,一週等等。


class time{
    private $year;//年
    private $month;//月
    private $day;//天
    private $hour;//小時
    private $minute;//分鐘
    private $second;//秒
    private $microtime;//毫秒
    private $weekday;//星期
    private $longDate;//完整的時間格式
    private $diffTime;//兩個時間的差值
    //返回年份 time:時間格式為時間 2018-8-21
    function getyear($time="",$type=""){
        if($time==""){
            $time=time();
        }
        if($type==1){
            return $this->year=date("y",$time); //返回兩位的年份 18
        }else{
            return $this->year=date("Y",$time); //返回四位的年份 2018
        }
    }
    //返回當前時間的月份 time:時間格式為時間 2018-8-21
    function getmonth($time="",$type=""){
        if($time==""){
            $time=time();
        }
        switch($type){
            case 1:$this->month=date("n",$time);//返回格式 8
            break;
            case 2:$this->month=date("m",$time);//返回格式 08
            break;
            case 3:$this->month=date("M",$time);//返回格式 Aug
            break;
            case 4:$this->month=date("F",$time);//返回格式 August
            break;
            default:$this->month=date("n",$time);
        }
        return $this->month; 
    }
    //返回當前時間的天數 time:時間格式為時間 2018-8-21 
    function getday($time="",$type=""){
        if($time==""){
            $time=time();
        }
        if($type==1){
            $this->day=date("d",$time);//返回格式 21
        }else{
            $this->day=date("j",$time);//返回格式 21
        }
        return $this->day;
    }
    //返回當前時間的小時  2018-08-21 1:19:21 20:19:21 
    function gethour($time="",$type=""){
        if($time==""){
            $time=time();
        } 
        switch($type){
            case 1:$this->hour=date("H",$time);//格式: 1 20
            break;
            case 2:$this->hour=date("h",$time);//格式  01 08
            break;
            case 3:$this->hour=date("G",$time);//格式  1 20
            break;
            case 4:$this->hour=date("g",$time);//格式  1 8
            break; 
            default :$this->hour=date("H",$time);
        }
        return $this->hour;
    }
    //返回當前時間的分鐘數 1:9:18  
    function getminute($time="",$type=""){
        if($time==""){
            $time=time();
        }
        $this->minute=date("i",$time); //格式  09
        return $this->minute;
    }
    //返回當前時間的秒數  20:19:01
    function getsecond($time="",$type=""){
        if($time==""){
            $time=time();
        }
        $this->second=date("s",$time); //格式  01
        return $this->second;
    }
    //返回當前時間的星期數 
    function getweekday($time="",$type=""){
        if($time==""){
            $time=time(); 
        }
        if($type==1){
            $this->weekday=date("D",$time);//格式  Sun
        }else if($type==2){
            $this->weekday=date("l",$time); //格式 Sunday
        }else{
            $this->weekday=date("w",$time);//格式 數字表示 0--6
        }
        return $this->weekday;
    }
    //比較兩個時間的大小 格式 2018-8-21 8:4:3  
    function compare($time1,$time2){
        $time1=strtotime($time1);
        $time2=strtotime($time2);
        if($time1>=$time2){  //第一個時間大於等於第二個時間 返回1 否則返回0
            return 1;
        }else{
            return -1;
        }
    }
    //比較兩個時間的差值
    function diffdate($time1="",$time2=""){
        //echo $time1.'------'.$time2.'<br>';
        if($time1==""){
            $time1=date("Y-m-d H:i:s"); 
        }
        if($time2==""){ 
            $time2=date("Y-m-d H:i:s"); 
        }
        $date1=strtotime($time1);
        $date2=strtotime($time2);
        if($date1>$date2){
            $diff=$date1-$date2; 
        }else{
            $diff=$date2-$date1;
        }
        if($diff>=0){
            $day=floor($diff/86400);
            $hour=floor(($diff%86400)/3600);
            $minute=floor(($diff%3600)/60);
            $second=floor(($diff%60));
            $this->diffTime='相差'.$day.'天'.$hour.'小時'.$minute.'分鐘'.$second.'秒'; 
        }
        return $this->diffTime;
    }
    //返回 X年X月X日
    function buildDate($time="",$type=""){
        if($type==1){   
            $this->longDate = $this->getyear($time) . '年' . $this->getmonth($time) . '月' . $this->getday($time) . '日';  
        }else{
            $this->longDate = $this->getyear($time) . '年' . $this->getmonth($time) . '月' . $this->getday($time) . '日'.$this->gethour($time).':'.$this->getminute($time).':'.$this->getsecond($time);  
        }
        return $this->longDate;  
    }
}


例項化這個物件


   $time_var = "2018-08-21";
   $obj = new time();
   $year = $obj->getyear($time_var);

   echo($year);