计算两个日期之间的差异PHP

时间:2013-04-04 11:03:34

标签: php date

我想计算两个php日期之间的差异。但是我收到以下错误:

  

注意:未定义的变量:第68行的C:\ wamp \ www \ HR版本1.3 \ Applicant_Workdetails.php的差异

我还想知道它是否是以这种方式计算差异的最佳做法。

if (isset($_GET['success']) && empty($_GET['sucess'])) {
    echo 'Submitted Successfully' . ' ';
    printf("%d years, %d months, %d days\n", $difference->y, $difference->m, $difference->d);  //This is line 68
} else {
    if (empty($_POST) === false && empty($errors) === true) {

        $startdate = $_POST['StartDate'];
        $enddate = $_POST['EndDate'];
        $datetime1 = new DateTime($startdate);
        $datetime2 = new DateTime($enddate);
        $difference = $datetime1->diff($datetime2);

        //Submit Workdetails to the database
        $personal_workdetails = array(
            'IndustryName' => $_POST['IndustryName'],
            'Occupation' => $_POST['Occupation'],
            'Position' => $_POST['Position'],
            'Job_description' => $_POST['Job_description'],
            'StartDate' => $startdate,
            'EndDate' => $enddate,
            'Personid' => $Personid,
            'Jobid' => $jobid);
        personal_workdetails($personal_workdetails);
        //redirect
        header('Location: Applicant_workdetails.php?success');
        exit();
    } else if (empty($errors) === false) {
        //output errors if the errors array is not empty
        echo output($errors);
    }
}

3 个答案:

答案 0 :(得分:1)

我没有看到$ difference创建的位置,请你发布整个文件,以便我可以看到问题所在?

你做了一个$ difference的printf(),但是这个变量只是声明了(据我所见)。后面有几行。

答案 1 :(得分:1)

在“C:\ wamp \ www \ HR version 1.3 \ Applicant_Workdetails.php”的第68行,您使用的是未定义的变量。可能添加或减少或某事。我们很难找到,因为我们不知道您发布的代码部分。

但请遵循指示。 PHP已明确错误的位置。

答案 2 :(得分:1)

您可以使用DateTime::diff

  $datetime1 = new DateTime("$start_date");
  $datetime2 = new DateTime("$end_date");
    $interval = $datetime1->diff($datetime2);
    echo "Result " . $interval->y . " years, " . $interval->m." months, ".$interval->d." days ";