将“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
?>
如何使用它们
当然,多么愚蠢的我见date的有效代码和DateTime::format。我想我被文档[这里](http://php.net/manual/en/dateinterval.format.php)误导 - 谢谢:)这就像一个魅力! – MadsMadsDk 2013-05-07 12:00:48