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
--;
}