2013-05-07 88 views
0

我試圖將格式「HH:MM」(例如,01:25 - 1小時25分鐘)的字符串轉換爲配方頁面中的微數據。將「hh:mm」字符串轉換爲HTML5微格式時長

我可以從字符串創建一個DateTime對象,像這樣:

$time = date_create_from_format("H:i", get_field("tilberedningstid")); 

但我怎麼這個DateTime對象轉換爲合法的ISO8601持續時間格式?

我覺得我已經嘗試了一切。我玩DateInterval類,應該輸出(我認爲?)正確的格式,這將是PT1H25M,但我似乎無法將我的DateTime對象轉換爲格式,即DateInterval可以解釋。我已經試過$interval = DateInterval($time->format(DateTime::ISO8601));,這應該由DateInterval類支持。

所以問題很簡單:如何將字符串「01:25」(HH:MM)轉換爲ISO8601字符串PT1H25M用於微格式,在php中?

回答

2

爲什麼使用日期間隔?你可以使用格式。但是因爲PTHM字符也是有效的代碼,所以你必須逃避它們。

<?php 
$date = new DateTime('01:25'); 
echo $date->format('\P\TG\Hi\M'); 
//output: PT1H25M 
?> 

如何使用它們

+1

當然,多麼愚蠢的我見date的有效代碼和DateTime::format。我想我被文檔[這裏](http://php.net/manual/en/dateinterval.format.php)誤導 - 謝謝:)這就像一個魅力! – MadsMadsDk 2013-05-07 12:00:48

相關問題