将“hh:mm”字符串转换为HTML5微格式时长

问题描述:

我试图将格式“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中?

为什么使用日期间隔?你可以使用格式。但是因为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