在php中添加两个时间值

在php中添加两个时间值,php,Php,这给出了错误的答案(23:01:44) 减去相同的代码,我得到了正确的答案(03:30:00)。你的逻辑是错误的。如果您的行为类似于第1个示例,那么您将按原样对两个时间戳求和(即从0开始),因此您将对前一个时间进行两次计数。但是,如果要减去它们,则会得到“预期”结果,因为每个操作数的上一个周期会消除另一个周期 但这不是它的工作原理。您应该使用API处理PHP中的日期和句点。您应该这样做: $test=strtotime("06:30:00")-strtotime("03:00:00");

这给出了错误的答案(23:01:44)


减去相同的代码,我得到了正确的答案(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";