比如,你要取得現在時間,就可以直接這樣寫:
$today = new DateTime(); echo $today->format('Y-m-d H:i:s'); //執行結果為:2013-12-05 16:34:47上列的執行的結果可以會和電腦顯示的時間不一樣,這是因為PHP時區設定的關係,可以去更改PHP的設定,或是在DateTime建構方法傳入DateTimeZone參數,並設定我們需要的時間字串:
//設定時間區為台北 $today = new DateTime('NOW', new DateTimeZone('Asia/Taipei')); echo $today->format('Y-m-d H:i:s'); //執行結果為:2013-12-06 00:34:47若是你要取得某一個自訂日期時間,就可以直接這樣寫:
$someDay = new DateTime('2010-08-08'); echo $someDay->format('Y-m-d'); //執行結果為:2010-08-08上列的DateTime所擁有的format,是用來做日期格式化的方法,其格式字串,「Y」表示是要格式化成4位數的西元年,「m」為「01到12」的月份,「d」為「01到31」的那一天,「H」表顯示為24小時制的時,而「i」表顯示為「00到59」的分鐘部份,「s」表「00到59」的格式來顯示秒數,詳細的格式化字串格式可以參考date方法的說明。
再來,要做日期的加減,要使用到DateTime類別的add方法,再搭配DateInterval類別來實現,比如想取得三個月後的日期:
$today = new DateTime('NOW', new DateTimeZone('Asia/Taipei')); $today->add(new DateInterval('P3M')); echo $today->format('Y-m-d'); //執行結果為:2014-03-06若要取得三個月前的日期,就使用DateTime類別的sub方法
$today = new DateTime('NOW', new DateTimeZone('Asia/Taipei')); $today->sub(new DateInterval('P3M')); echo $today->format('Y-m-d'); //執行結果:2013-09-06在上列的DateInterval類別建構子字串參數,若要加減1年就傳「P1Y」,要加減1個月就傳「P1M」,要加減1天就傳「P1D」,要加減1年2個月又3天就傳「P1Y2M3D」,依此類推。