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