在字符串表示中添加军事时间

时间:2010-08-05 03:17:32

标签: php time addition

所以我要做的是以军事时间的形式将两个字符串加在一起。这是一个例子。

Time1 =“01:00”; 时间2 =“04:30”;

将两者加在一起会产生“05:30”。这看起来非常简单,但对于新学员来说,这是漫长的一天。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

你可以在PHP 5.3中做这样的事情:

$d = new DateTime("01:00");
$f = $d->add(new DateInterval("PT04H30M"));
echo $f->format("H:i"); //outputs 05:30

将04:30转换为PT04H30M应该是微不足道的。请注意,这实际上是否符合你想要的“04:30”。此代码可能会或可能不会与实际时间相加4 * 60 + 30分钟。

如果您的意思是“4小时30分钟”,这始终是正确的。但是,如果您的意思是“4 * 60 + 30分钟”,则取决于日期和时区。例如:

$d = new DateTime("2010-03-28 01:00 Europe/Lisbon");
$f = $d->setTimestamp($d->getTimestamp() + (4*60+30)*60);
echo $f->format("H:i"); //outputs 06:30 due to DST

PHP 5.2的最后案例(假设当前日期和默认时区)的替代实现是

echo date("H:i", strtotime("+4 hours +30 mins", strtotime("01:00")));

对于第一种情况,我们必须这样做:

date_default_timezone_set("UTC");
echo date("H:i", strtotime("+4 hours +30 mins", strtotime("01:00")));