background image

PHP

入门 PHP 实现计算两个日期间隔的年、月、周、日数

以下是对使用 PHP 实现计算两个日期间隔的年、月、周、日数的方法进行了详细的分析介
绍,需要的朋友参考下
使用 PHP 实现计算两个日期间隔的年、月、周、日数:
代码如下:
 
<?php

function

 format(

$a

,

$b

){

//检查两个日期大小,默认前小后大,如果前大后小则交换位置以保证前小后大
if

(

strtotime

(

$a

)>

strtotime

(

$b

)) list(

$a

,

$b

)=

array

(

$b

,

$a

);

$start

 = 

strtotime

(

$a

);

$stop

 = 

strtotime

(

$b

);

$extend

 = (

$stop

-

$start

)/86400;

$result

['extends'] = 

$extend

;

if

(

$extend

<7){ 

//如果小于 7 天直接返回天数

$result

['daily'] = 

$extend

;

}

elseif

(

$extend

<=31){ 

//小于 28 天则返回周数,由于闰年 2 月满足了

if

(

$stop

==

strtotime

(

$a

.'+1 month')){

$result

['monthly'] = 1;

}

else

{

$w

 = 

floor

(

$extend

/7);

$d

 = (

$stop

-

strtotime

(

$a

.'+'.

$w

.' week'))/86400;

$result

['weekly'] = 

$w

;

$result

['daily'] = 

$d

;

}
}

else

{

$y

floor

(

$extend

/365);

if

(

$y

>=1){ 

//如果超过一年

$start

 = 

strtotime

(

$a

.'+'.

$y

.'year');

$a

 = 

date

('Y-m-d',

$start

);

//判断是否真的已经有了一年了,如果没有的话就开减
if

(

$start

>

$stop

){

$a

 = 

date

('Y-m-d',

strtotime

(

$a

.'-1 month'));

$m

 =11;

$y

--; 

}