PHP中时间的处理

常用格式符号:

d - 表示月里的某天(01-31)
m - 表示月(01-12)
Y - 表示年(四位数)
1 - 表示周里的某天
h - 带有首位零的 12 小时小时格式
i - 带有首位零的分钟
s - 带有首位零的秒(00 -59)
a - 小写的午前和午后(am 或 pm)

无需转换可使用date()函数:

date('Y-m-d h:i:sa');
date('Y-m-d h:i:sa', $d);  //$d为Unix时间戳

可使用mktime()函数获得某一日期的Unix时间戳:

mktime(hour,minute,second,month,day,year)

strtotime()函数可将自然语言智能的转化为时间戳(个人认为不可靠):

strtotime("10:38pm April 15 2015");
strtotime("tomorrow");
strtotime("next Saturday");
strtotime("+3 Months");
strtotime("+6 weeks",$startdate);

可也是用DateTime类进行高级操作:

$datetime = new \DateTime;
$datetime->format('Y-m-d H:i:s');

$datetime = new \DateTime('2016-06-13');

$datetime = \DateTime::createFromFormat('Ymd','20160618');
 
$datetime->getTimestamp();

$datetime->setTimestamp();

$datetime->setDate(2015, 2, 28); //类似mktime()


$datetime1 = new \DateTime('2016-01-01 10:11:18');
 
$datetime2 = new \DateTime('2017-05-11 22:21:21');
 
$interval = $datetime1->diff($datetime2);
 
print_r($interval->format('%Y'));
 
// %表示使用格式化,R表示是大于这个日期(+),还是小于这个日期(-),a表示大于或小于多少天,时分秒正常使用y,m,d,h,i,s