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