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