ASCII码 ASCII码

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

发布于:2022-02-13 10:06:42  栏目:技术文档

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

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<count($arr)-1;$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."<br/>";*/ 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;}

相关推荐
阅读 +