2013-04-04 4 views
-4

Я бы хотел рассчитать разницу между двумя датами php. Но я получаю следующее сообщение об ошибке:рассчитать разницу между двумя датами php

Notice: Undefined variable: difference in C:\wamp\www\HR version 1.3\Applicant_Workdetails.php on line 68

Я также хотел бы знать, может ли его наилучшая практика рассчитать разницу таким образом.

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); 
    } 
} 
+1

Так где (до этой строки) вы на самом деле определения $ разница? –

+0

http://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php?rq=1 –

+0

[Попробуйте выполнить поиск] (https://www.google .ru/search? q = разница + между + две + даты + php + сайт% 3Astackoverflow.com) – sectus

ответ

1

Я не вижу, где создается $ разница, не могли бы вы опубликовать весь файл, чтобы я мог видеть, где проблема?

Вы делаете printf() от $ difference, но эта переменная объявляется (насколько я могу видеть) некоторые строки после.

1

В строке 68 в «C: \ wamp \ www \ HR version 1.3 \ Applicant_Workdetails.php» вы используете переменную, которую вы не определяли. Возможно добавление или вычитание или что-то еще. Нам сложно найти, потому что мы не знаем, какую часть кода вы разместили.

Но просто следуйте инструкциям. PHP дал понять, где ошибка.

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 "; 
+0

Прочитайте вопрос, а не только заголовок. – itachi

Смежные вопросы