入门 - 时间处理 ¶
作者:KK
发表日期:2017.1.6
- 阅读本文章前,请确保你已经知道什么是Unix时间戳
我们经常会使用time函数获取时间戳,用date函数获取时间的自然数字日期表示法,用strtotime函数将自然日期转换成时间戳数字
time函数返回时间戳 ¶
只写一句测试代码:echo time();
然后每次运行PHP代码你会发现它输出的数字在跟着时间一秒一秒地增加,因为它就代表了1970年到今天所过去了的秒数
date函数返回格式化后的日期 ¶
请直接复制以下代码查看对应的输出
print_r([
'现在的年份' => date('Y'),
'现在的月份' => date('m'),
'现在的日期' => date('d'),
'现在的完整时间' => date('Y-m-d H:i:s'),
'现在的完整时间2' => date('Y-n-j H:i:s'),
'今天的日期' => date('Y-n-j'),
'其实只是将字母部分换成时间,间隔符号什么的可以自定义' => date('现在是Y年m月d H时i分s秒'),
'再来一个日期格式' => date('Y/m/d'),
'本周是今年的第几周' => date('W'),
'今天是一周里的第几天' => date('N'),
]);
以上代码我的输出结果大概如下:
Array
(
[现在的年份=> 2017
[现在的月份=> 01
[现在的日期=> 06
[现在的完整时间=> 2017-01-06 16:07:18
[现在的完整时间2=> 2017-1-6 16:07:18
[今天的日期=> 2017-1-6
[其实只是将字母部分换成时间=> 现在是2017年01月06年01月0616时07分18秒=> 2017/01/06
[本周是今年的第几周今年的第几周的第几周=> 01
[今天是一周里的第几天=> 5 //就是星期五
)
date还接受第2个可选参数的输入,这个参数是一个时间戳,它会根据这个时间戳去进行日期格式化:
$time = strtotime('2016-12-31 20:02');
print_r([
'2016-12-31' => date('Y-m-d', $time),
'2017-1-1 20:02' => date('Y-m-d', $time + 86400), //增加1天的秒数
'2017-1-1' => date('Y-m-d', $time + 86400),
]);
strtotime把日期字符串转换成时间戳 ¶
print_r([
'示例1' => strtotime('2017-1-1 00:00:00'),
'示例2' => strtotime('1970-1-1 01:00:00'), // 3600秒,距离1970年1月1日凌晨过去了1小时
'1天后(明天)的时间戳' => strtotime('+1day'),
'后天的日期' => date('Y-m-d', strtotime('+2day')),
'3周后的时间戳' => strtotime('+3week'),
'3个月后的时间戳' => strtotime('+3month'),
'3年前的时间戳' => strtotime('-3year'),
]);