PHP常用日期加减计算方法实例
实例总结了PHP常用日期加减计算方法。分享给大家供大家参考,具体如下:
PHP 标准的日期格式
date("Y-m-d H:i:s");
PHP 简单的日期加减计算如下:
<?php
date_default_timezone_set(
'PRC'
);
//默认时区
echo
"今天:"
,
date
(
"Y-m-d"
,time()),
"
"
;
echo
"今天:"
,
date
(
"Y-m-d"
,
strtotime
(
"18 june 2008"
)),
"
"
;
echo
"昨天:"
,
date
(
"Y-m-d"
,
strtotime
(
"-1 day"
)),
"
"
;
echo
"明天:"
,
date
(
"Y-m-d"
,
strtotime
(
"+1 day"
)),
"
"
;
echo
"一周后:"
,
date
(
"Y-m-d"
,
strtotime
(
"+1 week"
)),
"
"
;
echo
"一周零两天四小时两秒后:"
,
date
(
"Y-m-d G:H:s"
,
strtotime
(
"+1 week 2 days 4 hours 2 seconds"
)),
"
"
;
echo
"下个星期四:"
,
date
(
"Y-m-d"
,
strtotime
(
"next Thursday"
)),
"
"
;
echo
"上个周一:"
.
date
(
"Y-m-d"
,
strtotime
(
"last Monday"
)).
"
"
;
echo
"一个月前:"
.
date
(
"Y-m-d"
,
strtotime
(
"last month"
)).
"
"
;
echo
"一个月后:"
.
date
(
"Y-m-d"
,
strtotime
(
"+1 month"
)).
"
"
;
echo
"十年后:"
.
date
(
"Y-m-d"
,
strtotime
(
"+10 year"
)).
"
"
;
?>
运行结果:
今天:2018-07-31
今天:2008-06-18
昨天:2018-07-30
明天:2018-08-01
一周后:2018-08-07
一周零两天四小时两秒后:2018-08-09 15:15:40
下个星期四:2018-08-02
上个周一:2018-07-30
一个月前:2018-07-01
一个月后:2018-08-31
十年后:2028-07-31
PHP 进阶的日期加减计算
<?php
// 默认时区
date_default_timezone_set(
'PRC'
);
echo
"今天: "
,
date
(
'Y-m-d H:i:s'
),
"
"
;
// 输出当前时间
echo
"明天: "
,
date
(
'Y-m-d H:i:s'
,
strtotime
(
'+1 day'
)),
"
"
;
// 输出明天时间
//strtotime 可以接受第二个参数,类型timestamp为指定日期
echo
date
(
'Y-m-d H:i:s'
,
strtotime
(
"+1 day"
,
strtotime
(
'2017-11-11'
))),
"
"
;
// 这里+1 day 可以修改参数1为任何想需要的数
// day也可以改成year(年)month(月)hour(小时)minute(分)second(秒)
echo
date
(
'Y-m-d H:i:s'
,
strtotime
(
"+1 day +1 hour +1 minute"
)),
"
"
;
?>
运行结果:
今天: 2018-07-31 11:37:11
明天: 2018-08-01 11:37:11
2017-11-12 00:00:00
2018-08-01 12:38:11
PHP 高级的计算日期时间差
<?php
// 默认时区
date_default_timezone_set(
'PRC'
);
echo
date
(
"Y-m-d H:i:s"
),
"
"
;
// 日期天数相加函数
echo
date
(
'Y-m-d'
,
strtotime
(
'+1 day'
,
strtotime
(
'2016-09-12'
))),
"
"
;
echo
strtotime
(
'2016-09-12'
),
"
"
;
echo
date
(
"Y-m-d"
,
'1473609600'
),
"
"
;
echo
date
(
"Y-m-d"
,
'1573609600'
),
"
"
;
// 日期天数相加函数
$d
=
"2016-09-12 10:12:20"
;
echo
date
(
"Y-m-d"
,
strtotime
(
"$d +1 day"
)),
"
"
;
// 把日期转换成时间截
function
date2time(
$d
){
$year
=((int)
substr
(
"$d"
,0,4));
//取得年份
$month
=((int)
substr
(
"$d"
,5,2));
//取得月份
$day
=((int)
substr
(
"$d"
,8,2));
//取得几号
return
mktime
(0,0,0,
$month
,
$day
,
$year
);
}
echo
date2time(
"2016-09-12"
),
"
"
;
$date_1
=
"2066-09-12"
;
$date_2
=
"2016-09-12"
;
$Date_List_a1
=
explode
(
"-"
,
$date_1
);
$Date_List_a2
=
explode
(
"-"
,
$date_2
);
$d1
=
mktime
(0,0,0,
$Date_List_a1
[1],
$Date_List_a1
[2],
$Date_List_a1
[0]);
$d2
=
mktime
(0,0,0,
$Date_List_a2
[1],
$Date_List_a2
[2],
$Date_List_a2
[0]);
$Days
=
round
((
$d1
-
$d2
)/3600/24);
echo
"$date_2 -> $date_1 相差: $Days 天"
,
"
"
;
?>
运行结果:
2018-07-31 11:37:39
2016-09-131473609600
2016-09-12
2019-11-13
2016-09-131473609600
2016-09-12 -> 2066-09-12 相差: -17056 天