首页 每日编程 PHP知识 PHP几种常见的时间间隔信息获取

PHP几种常见的时间间隔信息获取

Aug 16, 2021 am 09:39 AM
1

有时候我们在开发项目的时候会遇到获取几天前、几天后、今日、本周等的开始时间和结束时间,获取前几个月份,获取本年度天数等等,以下是我总结的几种常见的时间相关的方法,希望对大家有用:

1.获取前几个月月份

public  function toSelfMonth($m){
   $today = input('param.today') ? input('param.today') : date("Y-m-d");
   $arr = array();
   $old_time = strtotime('-'.$m.' month',strtotime($today));
   for($i = 0;$i <= $m; ++$i){
$t = strtotime("+$i month",$old_time);
$arr[]=date('Y-m',$t);
}
return $arr;
}

2.获取前几天日期

public function toSelfDay($m){
$today = input('param.today') ? input('param.today') : date("Y-m-d");
$arr = array();
$old_time = strtotime('-'.$m.' day',strtotime($today));
for($i = 0;$i <= $m; ++$i){
$t = strtotime("+$i day",$old_time);
$arr[]=date('Y-m-d',$t);
}
return $arr;
}

3.计算前几个月的天数

public function getLastMonthDays($month){
$arr = $this->toSelfMonth($month);
   $y = date('Y',time());
   $days = date('d',time());
   for ($i=0;$i $days = $days + date('t', strtotime($arr[$i]."-01"));
}
return $days;
}
4.获取某一月的天数
public function getSelfMonthDays(){
/*$days = cal_days_in_month(CAL_GREGORIAN, 4, 2011);*/
$days = date('t', strtotime("2011-4-1"));
/*$days = date("t");
echo "当前月的天数 ".$days."
";*/
   return $days;
}

5.获取指定年月的开始和结束时间戳

public function getSelfMonthStartEnd($y=0,$m=0){
   $y = $y ? $y : date('Y');
   $m = $m ? $m : date('m');
   $d = date('t', strtotime($y.'-'.$m));
   return array("start"=>strtotime($y.'-'.$m),"end"=>mktime(23,59,59,$m,$d,$y));
}

6.获取日期间隔

获取时间间隔,首先要将时间转化为时间戳,时间戳一般是以秒为计量单位,所以得出以下计量单位:

(1)1小时为3600s

(2)1天为24*3600s,即86400秒

根据这两个条件,得到以下方法

function GetDateLong($time1,$time2){

   if($time2 >= $time1){
       $long = $time2 - $time1;
   }else{
       $long = -($time2 - $time1);
   }
   if($long > 0){
       $year_day = $this->GetYearDay($time1);
       $year = floor($long/($year_day*86400));
       $day = floor(($long)%($year_day*86400)/86400);
       if($year >= 1){
           return $year.'年'.$day.'天';
       }else{
           return $day.'天';
       }
   }else{
       return '0天';
   }


}

7.获取是否是闰年

一年有365天的情况下是平年,1年有366天的情况下是闰年。

1、普通闰年:公历年份是4的倍数的,一般是闰年。(如2004年就是闰年);2、世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是世纪闰年,2000年是世纪闰年)。

按照这个条件我们可以获取到以下的方法获取是平年还是闰年

public function GetYearType($year){
   if ($year%4==0&&($year%100!=0 || $year%400==0)){
       return 1;
   }else{
       return 2;
   }
}

8.判断一年有多少天

同以上7的介绍公历年份是4的倍数的,一般是闰年。公历年份是整百数的,必须是400的倍数才是闰年。

按照这个条件我们可以完成一下方法来获取一年的天数

public function GetYearDay($time){
   $year = date("Y",$time);
   $a1 = $year/100;
   if($a1 == 0){
       $b1 = $year/400;
       if($b1 > 0){
           $long = 365;
       }else{
           $long = 366;
       }
   }else{
       $b2 = $year/4;
       if($b2 == 0){
           $long = 366;
       }else{
           $long = 365;
       }
   }
   return $long;
}

以上是PHP几种常见的时间间隔信息获取的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)