PHP之时间和日期函数
// 时间日期函数
Time
<?php
date_default_timezone_set('UTC');
// 获取当前时间的时间戳
$time0 = mktime();
$time1 = time();
$time2 = date('U');
// 输出时间
echo $time0.'<br />'.$time1.'<br />'.$time2.'<br /><br />';
$time3 = mktime(12, 0, 0); //当前中午的时间戳
echo $time3.'<br />';
$time4 = mktime(0, 0, 0, 1, 1); //当年1月1日
echo $time4.'<br />';
echo '<br />';
// 使用getdate()
$date_array = getdate($time0);
foreach ($date_array as $key => $value) {
echo $key.': '.$value.'<br />';
}
echo '<br />';
// 使用checkdate()
$date_check0 = checkdate(2, 29, 2008);
$date_check1 = checkdate(2, 29, 2007);
echo $date_check0.' '.$date_check1.'<br /><br />';
// 字符长格式化
/*
%a - 星期几名称的简写
%A - 星期几名称的全称
%b - 月份名称的简写
%B - 月份名称的全称
%c - 首选的日期和时间表示法
%C - 表示世纪的数字(年份除以 100,范围从 00 到 99)
%d - 一个月中的第几天(01 到 31)
%D - 时间格式,与 %m/%d/%y 表示法相同
%e - 一个月中的第几天(1 到 31)
%g - 与 %G 表示法类似,但不带世纪
%G - 与 ISO 星期数对应的 4 位数年份(见 %V)
%h - 与 %b 表示法相同
%H - 小时,使用 24 小时制(00 到 23)
%I - 小时,使用 12 小时制(01 到 12)
%j - 一年中的第几天(001 到 366)
%m - 月份(01 到 12)
%M - 分
%n - 换行符
%p - 与给定的时间值相对应的 am 或 pm
%r - a.m. 和 p.m. 的时间标记法
%R - 24 小时制的时间标记法
%S - 秒
%t - tab 制表符
%T - 当前时间,与 %H:%M:%S 表示法相同
%u - 星期几的数字表示(1 到 7),Monday[星期一] = 1。警告:在 Sun Solaris 系统中,Sunday[星期日] = 1
%U - 当年包含的周数,从第一个星期日开始,作为第一周的第一天
%V - 当年包含的 ISO 8601 格式下的周数(01 到 53),week 1 表示当年的第一周,至少要有四天,且以星期一作为周的第一天
%W - 当年包含的周数,从第一个星期一开始,作为第一周的第一天
%w - 以十进制数形式表示一周中的某天,Sunday[星期日] = 0
%x - 首选的日期表示法,不带时间
%X - 首选的时间表示法,不带日期
%y - 不包含表示世纪的数字的年份表示(范围从 00 到 99)
%Y - 包含表示世纪的数字的年份表示
%Z 或 %z - 时区名称或简写
%% - 输出一个 % 字符
*/
echo strftime('%A<br />');
echo strftime('%x<br />');
echo strftime('%c<br />');
echo strftime('%Y<br />');
echo '<br />';
// 计算时间差 2016/10/17 - 1974/12/18
$day = '18';
$month = '12';
$year = '1974';
$date_custom = mktime(0, 0, 0, $month, $day, $year);
$date_now = time();
$diff = $date_now - $date_custom;
$age = floor($diff / (365 * 24 *60 *60));
echo 'Age: '.$age.'<br /><br />';
?>
</body>
</html>
打印结果:
Time
1476751633
1476751633
1476751633
1476792000
1451606400
seconds: 13
minutes: 47
hours: 0
mday: 18
wday: 2
mon: 10
year: 2016
yday: 291
weekday: Tuesday
month: October
0: 1476751633
1
Tuesday
10/18/16
Tue Oct 18 00:47:13 2016
2016
Age: 41