开发中经常用到时间的一些操作,比如昨天,今天,前天,近七天,一周等等。
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);