PHP日期類介面之DateTimeInterface介紹
阿新 • • 發佈:2019-01-26
PHP中的DateTimeInterface介面是為了給類DateTime和DateTimeImmutable做型別約束用的,不能使用使用者自定義的類實現此介面。PHP5.5.8起,嘗試實現DateTimeInterface介面會產生致命錯誤。
介面定義了六個方法:
diff:返回兩個DateTime物件的差值。接受兩個引數,第一個為要進行比較的日期DateTimeInterface物件,第二個引數為可選的表示是否差值必須是正數,如果為true則總是返回正數。預設為false。返回一個DateInterval物件來表示兩個日期的差值,若比較失敗則返回false。
format:返回根據指定格式格式化後的日期。接受一個引數為日期的格式字串。返回一個按指定格式格式化後的字串,若失敗則返回false。此方法不受區域設定影響,返回的都是英文字元。
getOffset:以秒為單位返回日期與當前時區偏移量。
getTimestamp:獲取unix時間戳。
getTimezone:返回日期的時區資訊類DateTimeZone的物件。
__wakeup:魔術方法,返回一個例項化的DateTime物件。
<?php $date1=new DateTime("2018-10-31"); $date2=new DateTime("2018-11-04"); $interval=$date1->diff($date2); echo $interval->format('%R%a days'),"\n"; $interval=$date2->diff($date1); echo $interval->format('%R%a days'),"\n"; $interval=$date2->diff($date1,true); echo $interval->format('%R%a days'),"\n"; $date1=new DateTime("2018-10-31",new DateTimeZone('America/New_York')); echo $date1->getOffset(),"\n"; echo $date1->getTimestamp(),"\n"; echo $date2->format('Y-m-d'),"\n"; echo date('Y-m-d',1540958400),"\n"; $timezone=$date2->getTimezone(); echo $timezone->getName(),"\n"; ?>