1).本身处理很容易出错,建议使用从PHP5.2以后新增的DateTime、DateInterval和DateTimeZone类。
2).使用date_default_timezone_set('Asia/Shanghai');设置默认时区为中国时区,或者你也能够在php.ini文件中配置。
3).使用DateTime管理时间和日期:php
<?php
//没有传入参数返回当前日期和时间的实例
$datetime = new DateTime();
//传入符合规范的时间格式
$datetime = new DateTime('2017-07-14 9:19 AM')
//有时咱们必须处理那些不符合规范的时间格式t
$datetime = DateTime::createFromFormat('M j, y H:i:s', 'Jul 14, 2017 09:19:20');复制代码
4).DateTime::createFromFormate()静态方法使用的日期格式与date()同样。能够的日期和格式能够参见php.net/manual/zh/d…
5).使用DateInterval偏移时间:git
<?php
$datetime = new DateTime('2017-07-14 14:00:00');
$interval = new DateInterval('P2W');
$datetime->add($interval);
echo $datetime->format('Y-m-d H:i:s');复制代码
有效的周期标志以下:github
$dateStart = new \DateTime();
$dateInterval = DateInterval::createFromDateString('-1 day');
$datePeriod = new DatePeriod($dateStart, $dateInterval, 3);
foreach ($datePeriod as $date) {
echo $date->format('Y-m-d'), PHP_EOL;
}复制代码
5).DateTimeZone类:<?php
$timezone = new DateTimeZone('Asia/Shanghai');
$datetime = new DateTime('2017-07-14', $timezone);
//使用setTimeZone()方法修改DateTime实例的时区
$dateTIme->setTimezone(new DateTimeZone('Asia/Hongkong'));复制代码
最好是一直使用UTC时间。服务器使用,本身开发默认也是,而后存入数据库也是,这样的话把数据显示给用户看的话转换为适当时区的日期和时间就好了。PHP专题系列目录地址:github.com/xx19941215/…
PHP专题系列预计写二十篇左右,主要总结咱们平常PHP开发中容易忽略的基础知识和现代PHP开发中关于规范、部署、优化的一些实战性建议,同时还有对Javascript语言特色的深刻研究。web