PHP日期和时间增加小时

时间:2015-03-11 23:17:41

标签: php

我是一个使用以下内容的脚本:

计划开始的计划开始时间

计划开始日期 - 计划开始的日期

脚本总计 - 进程需要多长时间

script - 脚本中的当前点

所以它的工作方式是

预期结束=计划开始时间/日期+脚本总数

实际结束=当前时间/日期+(脚本总数 - 以小时为单位的脚本) -

我无法解决此问题:

$currentpoint = $row['script']; //current point
$progress = $row['scriptotal'] - $currentpoint; //gives hours rem till fin

$actdate ="+".$progress." hours";
$actual = date("Y-m-d h:i:s",strtotime("".$actdate.""));
echo $actual; // this looks like it working

以上是正在制定的实际日期,它似乎正在运作 接下来是我遇到麻烦的预计日期

  $date1 = "".$row['planned_start_date']. " " .$row['planned_start_time']."";
    $expdate= "+".$row["scriptotal"]." hours";
    $expectdate = date("Y-m-d h:i:s", $date1);
    $expecteddate = date("Y-m-d h:i:s", strtotime("".$expdate."");
    echo $expecteddate; // get output but 1970 is year.

我得到两者的输出但是一年是1970年?我的脚本中也出现错误:“遇到一个非常好的数值”。

帮助解决上述问题的解决方案或:

当前日期时间+ int(表示小时数)  &安培;  日期timw + int(表示小时数)会有所帮助。我认为我的实际工作正在发挥作用。

提前致谢

1 个答案:

答案 0 :(得分:0)

$date1 = "".$row['planned_start_date']. " " .$row['planned_start_time']."";
$expectdate = date("Y-m-d h:i:s", $date1);

date()期望第二个参数是一个unix时间戳(整数),我可以假设$date1不是。

$expecteddate = date("Y-m-d h:i:s", strtotime("".$expdate."");

您错过了结束)。同样使用""..""在这里毫无意义。您还可能需要验证$row["scriptotal"]是否为整数。如果它返回null或非整数,它将失败。