将H:i转换为ISO 8601持续时间标准

Man*_*kos 4 php datetime

配方的持续时间作为字符串存储在我的数据库中:"01:50"我试图将其转换为ISO 8601持续时间标准,但没有成功.

这是我用来调用字段并将其解析为页面的内容:

$totalTime = ($extraField->value);
$itempr = "itemprop=\"totalTime\" content=\"$totalTime\"";
Run Code Online (Sandbox Code Playgroud)

像这样,它在谷歌结构化数据测试工具中显示为"00:50",谷歌不接受.根据我的理解,它应该是这样的:PT1H50M

有没有人对如何将其转换为ISO 8601格式有任何想法?请记住,我并不热衷于使用PHP进行开发,因此请尽可能解释.谢谢!

Gla*_*vić 7

就像你在评论中写的那样:

echo (new DateTime('01:50'))->format('\P\TG\Hi\M');
Run Code Online (Sandbox Code Playgroud)

或者您可以使用TIME_FORMAT函数将其转换为数据库:

SELECT TIME_FORMAT('01:50', 'PT%kH%iM');
Run Code Online (Sandbox Code Playgroud)