php - 如何从时间字符串创建 DateInterval

标签 php dateinterval

如果我有一个时间格式字符串,如“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/

相关文章:

javascript - 使用带 href 标签的 Bootstrap 模式

php - Mysql 在数据库中插入日期

php - Ebay API ISO 8601 持续时间格式到时间戳

php - {YOURLS} 将 "shortening"接口(interface)设为私有(private)

php - 在文件夹中使用 .htaccess 隐藏查询字符串

php - (Yii)日期时间验证失败

date - 使用星期/月定义时间间隔(ISO 8601?)

javascript - 从数据库获取所有纬度和经度以显示谷歌地图上的所有位置

PHP 显示每周两次交货的下一个交货日期

php - 如何在PHP中获得两个日期之间的月份差异