2015-02-23 39 views
3

我正在使用PHP國際圖書館格式化日期,數字等。 現在,我必須表現出人類可讀的字符串的時間跨度,例如:PHP國際圖書館和人類可讀時間跨度

1天,1小時,10分鐘,14秒

或以緊湊的方式:

1D 1S 10米14S

或超濃縮方式:

1D 1.10:14

有沒有辦法做到這一點使用在國際圖書館建立一個沒有gettext的? 如果不是,我可以使用自定義函數格式化時間範圍,但是我能從IntlDateFormatter中獲取正確語言環境中的至少名稱('day'或'd')嗎?

回答

2

是的,回答你的問題是DateInterval。據documentation你可以用這種方式:

$pastDate = new DateTime('2015-09-01 15:00:00'); 
$today = new DateTime(); 

//calculate interval and returns DateInterval object 
$timeSpan = $today->diff($pastDate); 

//now we'll format it 
echo $timeSpan->format('%a day, %h hour, %i minutes, %ss').PHP_EOL; 
echo $timeSpan->format('%ad %hh %im %ss').PHP_EOL; 
echo $timeSpan->format('%ad %h.%i:%s').PHP_EOL; 

結果將是:

100天,9個小時後,55分鐘,12秒

100D 9H55米12S

100d 9.55:12