-4

我想计算两个 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);
    }
}
4

3 回答 3

1

我没有看到 $difference 是在哪里创建的,能否请您发布整个文件以便我查看问题所在?

您执行 $difference 的 printf(),但该变量仅在几行之后才声明(据我所知)。

于 2013-04-04T11:08:57.820 回答
1

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

但只需按照说明进行即可。PHP 已经明确了错误在哪里。

于 2013-04-04T11:10:18.723 回答
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 ";
于 2013-04-04T11:11:08.307 回答