我需要添加多个时间值,如小时:分钟,所以我使用
strtotime($value1) + strtotime($value2)
要添加所有这些,我怎么把它们放回几个小时:分钟?
无法使用
date("h:i")
它仅在小时< 24。
感谢您的帮助。感谢
答案 0 :(得分:3)
答案 1 :(得分:2)
试试这个:
function time_convert($s) {
$m = 0; $hr = 0; $td = "now";
if ($s > 59) {
$m = (int)($s/60);
$s = $s-($m*60); // sec left over
$td = "$m min";
}
if ($m > 59) {
$hr = (int)($m / 60);
$m = $m - ($hr*60); // min left over
$td = "$hr hr";
if ($hr > 1) {
$td .= "s";
}
if ($m > 0) {
$td .= ", $m min";
}
}
return $td;
}
并使用它:
$time = (int) strtotime($v1) + strtotime($v2);
echo time_convert($time);
愿它有所帮助
答案 2 :(得分:1)
函数strtotime()返回自1970年1月1日00:00:00 UTC以来的秒数。因此,添加此函数的返回值可能无法达到预期效果。
我们可以操作字符串并执行一些基本的算术运算,而不是使用日期函数:
<?php
$value1 = "12:44";
$value2 = "13:47";
$arr1 = explode(':', $value1);
$arr2 = explode(':', $value2);
$totalMinutes = (int)$arr1[0] * 60 + (int)$arr1[1] + (int)$arr2[0] * 60 + (int)$arr2[1];
$hours = (int) ($totalMinutes / 60);
$minutes = $totalMinutes % 60; // Modulus: remainder when dividing with 60
echo $hours . ':' . $minutes;
?>
答案 3 :(得分:0)
DateTime的另一种方式
$dt1 = new DateTime($value1);
$dt2 = new DateTime($value2);
$interval = $dt1->diff($dt2);
echo $interval->format('%a day(s) %h hour(s) %i minute(s)') . '<br />';
echo ($interval->format('%a') * 24 + $interval->format('%h')) . ' hour(s) ';
echo $interval->format('%i minute(s)');