在php中添加两个时间值
这给出了错误的答案(23:01:44)在php中添加两个时间值,php,Php,这给出了错误的答案(23:01:44) 减去相同的代码,我得到了正确的答案(03:30:00)。你的逻辑是错误的。如果您的行为类似于第1个示例,那么您将按原样对两个时间戳求和(即从0开始),因此您将对前一个时间进行两次计数。但是,如果要减去它们,则会得到“预期”结果,因为每个操作数的上一个周期会消除另一个周期 但这不是它的工作原理。您应该使用API处理PHP中的日期和句点。您应该这样做: $test=strtotime("06:30:00")-strtotime("03:00:00");
减去相同的代码,我得到了正确的答案(03:30:00)。你的逻辑是错误的。如果您的行为类似于第1个示例,那么您将按原样对两个时间戳求和(即从0开始),因此您将对前一个时间进行两次计数。但是,如果要减去它们,则会得到“预期”结果,因为每个操作数的上一个周期会消除另一个周期 但这不是它的工作原理。您应该使用API处理PHP中的日期和句点。您应该这样做:
$test=strtotime("06:30:00")-strtotime("03:00:00");
echo gmdate("H:i:s", $test);
我遇到了类似的问题,并编写了一个小函数将时间(以多种方式格式化)转换为秒。显然,把这些秒加在一起是微不足道的
<?
echo date("H:i:s", strtotime("06:30:00 + 3 hour"));
echo date("H:i:s", strtotime("06:30:00 - 3 hour"));
?>
适用于以下格式:
function getSeconds($s) {
$s = str_replace('h',':',$s);
$s = str_replace(',','.',$s);
$a = explode(':',$s);
$n = count($a);
if ($n==1)
return $a[0]; //just seconds
if ($n==2)
return $a[1] + 60 * $a[0]; //minutes and seconds
if ($n==3)
return $a[2] + 60 * $a[1] + 3600 * $a[0]; //hours minutes and seconds
}
不能在时间上加减点。改为加/减
TimeSpan
s。或者把它们加/减到秒。你能给我一个php代码的例子吗?你必须告诉我你想要什么。你提供的代码毫无意义strotime
将为您提供一个(绝对)时间点。您不能再添加另一个绝对时间戳。如果您使用的是持续时间,strotime
是错误的工具。很抱歉,我是一个初学者,实际上我的代码中有一个循环,它给出了持续时间(以小时和分钟为单位),我想计算总的持续时间。我想我的答案可能会帮助您解决这个问题:很抱歉,我是一个初学者,实际上,我的代码中有一个循环,它给出了持续时间(以小时和分钟为单位),我想计算总的持续时间。谢谢。。。这就是我所需要的,我从你的回答中得到了回音日期(“H:i:s”,标准时间(“06:30:00-3小时30分钟”);我很高兴能帮上忙:)希望你一直支持我……)
function getSeconds($s) {
$s = str_replace('h',':',$s);
$s = str_replace(',','.',$s);
$a = explode(':',$s);
$n = count($a);
if ($n==1)
return $a[0]; //just seconds
if ($n==2)
return $a[1] + 60 * $a[0]; //minutes and seconds
if ($n==3)
return $a[2] + 60 * $a[1] + 3600 * $a[0]; //hours minutes and seconds
}
12
12.34
12:34 (will assume mm:ss in this format)
12:34.56
12:34,56
12:34:56.78
12h34:56,78
$date1 = strtotime('2012-05-01 12:00:00');
$date2 = time();
$subTime = $date1 - $date2;
$y = ($subTime/(60*60*24*365));
$d = ($subTime/(60*60*24))%365;
$h = ($subTime/(60*60))%24;
$m = ($subTime/60)%60;
echo "Difference between ".date('Y-m-d H:i:s',$date1)." and ".date('Y-m-d H:i:s',$date2)." is:\n";
echo $y." years\n";
echo $d." days\n";
echo $h." hours\n";
echo $m." minutes\n";