在開發網站功能的時候滿常會使用到跟時間有關的東西,這邊舉一些常用的類別來說明。
- DateTime: 日期與時間的主要類別
DateTime
//取得現在時間
$date = new DateTime();
// yesterday, tomorrow (時間都是 00:00:00)
$date = new DateTime('yesterday');
//取得指定時間
$date = new DateTime('2020-05-20 05:20:00');
//另一種格式
$date = new DateTime('2020/05/20 05:20 AM');
// +- day, week, month, year
$date = new DateTime('+1 day');
一些可以用來敘述的時間設定可以參考 Relative Formats,比如:
$date = new DateTime('first day of this month');
$date = new DateTime('2 days ago');
DateTime::createFromFormat()
因應不同格式建立物件: DateTime::createFromFormat
$date = DateTime::createFromFormat('Y/m/d H:i', '2020/05/20 20:20');
$date = DateTime::createFromFormat('\t\o\d\a\y \i\s Y F j', 'today is 2020 May 20');
Output:
format()- 設定格式
echo $date->format('Y-m-d H:i:s');
format 可以設定的值可以參考官方文件
getTimestamp()- 取得時間戳記
echo $date->getTimestamp();
Setting:
setData()
$date->setDate(2020, 08, 20);
setTime()
$date->setTime(12, 00, 20);
setTimestamp()
$date->setTimestamp(1495088399);
modify()
$date->modify('-10 days');
Compare:
diff()- 帶入兩個時間,幫你算出差距
$date1 = new DateTime('2020-08-01');
$datt2 = new DateTime('2020-08-15');
$interval = $date1->diff($datt2);
// +14 days
echo $interval->format('%R%a days');