如果我有一个时间格式字符串,如“14:30:00”(“小时:分钟:秒”),我如何从该字符串中获取 DateInterval?
我可以获得一个日期时间:
$datetime= DateTime::createFromFormat("H:i:s","14:30:00");
但我需要将它添加到另一个 DateTime 对象,而 date_add 需要一个 DateInterval。
最佳答案
如果您想要一个 14 小时 30 分钟的间隔,只需使用构造函数...
$interval = new DateInterval('PT14H30M');
分解...
P
- 所有间隔规范字符串必须以P
开头(对于 Period)。不过,我们没有使用任何周期间隔来...T
- 这将启动 Time 规范14H
- 14 小时30M
- 30 分钟
如果您必须使用字符串14:30:00,我会用sscanf
解析它并使用部分...
list($hours, $minutes, $seconds) = sscanf('14:30:00', '%d:%d:%d');
$interval = new DateInterval(sprintf('PT%dH%dM%dS', $hours, $minutes, $seconds));
关于php - 如何从时间字符串创建 DateInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21742329/