所以我要做的是以军事时间的形式将两个字符串加在一起。这是一个例子。
Time1 =“01:00”; 时间2 =“04:30”;
将两者加在一起会产生“05:30”。这看起来非常简单,但对于新学员来说,这是漫长的一天。任何帮助将不胜感激。
答案 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")));