在開發網站功能的時候滿常會使用到跟時間有關的東西,這邊舉一些常用的類別來說明。
- 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');