怕什么真理无穷 2019-06-30
DateTime 类虽然早就有所了解,但在实际中很少使用,更多的还是用 date()、time()、strtotime() 等。DateTime 类是 PHP 5.2后新增的处理时间格式类,可以输出、转换、计算时间,很好的替代了 date() 等函数。下面整理记录下。
<?php $date = new DateTime; echo $date->format('Y-m-d H:i:s'); echo $date->format('Y-m-d'); echo $date->getTimestamp();// 时间戳 $timezone = $data->getTimezone(); echo $timezone->getName();// Asia/Shanghai
<?php $date = new DateTime('2018-01-01'); echo $date->format('Y-m-d H:i:s');// 2018-01-01 00:00:00 $date1 = new DateTime; $date1->setTimestamp('1514739661'); echo $date1->format('Y-m-d H:i:s');// 2018-01-01 01:01:01 $date2 = new DateTime('tomorrow'); echo $date2->format('Y-m-d');// 2018-03-14 $date3 = new DateTime('+2 day'); echo $date3->format('Y-m-d');// 2018-03-15
<?php $date = new DateTime; $date->setDate(2020, 8, 8); echo $date->format('Y-m-d H:i:s');// 2020-08-08 20:03:54 $date1 = new DateTime; $date1->setTime(2, 3, 4); echo $date1->format('Y-m-d H:i:s');// 2018-03-13 02:03:04 $date3 = new DateTime; $date3->modify('+1 day'); echo $date3->format('Y-m-d H:i:s');// 2018-03-14 20:08:25 $date3->modify('+20 day'); echo $date3->format('Y-m-d H:i:s');// 2018-04-03 20:10:07 $date3->modify('+1 month'); echo $date3->format('Y-m-d H:i:s');// 2018-05-03 20:10:17 $date3->modify('-1 year'); echo $date3->format('Y-m-d H:i:s');// 2017-05-03 20:12:17 $data4 = new DateTime; $temp = $data4->setISODate(2018, 3, 2); echo $temp->format('Y-m-d');// 2018-01-16
<?php $date = new DateTime; $date1 = new DateTime('2016-01-01'); print_r($date > $date1 ? 1 : 2);// 1 print_r($date->diff($date1));// DateInterval Object ( [y] => 2 [m] => 2 [d] => 12 [h] => 16 [i] => 52 [s] => 50 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 1 [days] => 802 [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 ) // 格式化输出 $diff = $date->diff($date1); echo $diff->format("相差 %Y 年 %m 月 %d 天");// 相差 02 年 2 月 12 天
参考资料:PHP 手册、 php 自带datetime类的使用、PHP中的DateTime类。