2013-04-04 7 views
-4

Je voudrais calculer la différence entre deux dates php. Mais je reçois l'erreur suivante:calculer la différence entre deux dates php

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

Je voudrais également savoir si sa meilleure pratique pour calculer la différence de cette façon.

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

Où (avant cette ligne) vous définissez réellement la différence de $? –

+0

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

+0

[Essayez de recherche] (https://www.google .ru/recherche? q = différence + entre + deux + dates + php + site% 3Astackoverflow.com) – sectus

Répondre

1

Je ne vois pas où la différence de $ est créé, pourriez-vous s'il vous plaît poster tout le fichier que je puisse voir où est le problème?

vous faites un printf() de la différence de $, mais cette variable est uniquement déclarée (pour autant que je peux voir) quelques lignes après.

1

Sur la ligne 68 dans "C: \ wamp \ www \ version HR 1.3 \ Applicant_Workdetails.php" vous utilisez une variable que vous n'avez pas défini. Peut-être ajouter ou soustraire ou quelque chose. C'est difficile à trouver car nous ne savons pas quelle partie du code vous avez posté.

Mais suivez simplement les instructions. PHP a clairement indiqué où se trouve l'erreur.

1

Vous pouvez utiliser 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

Lisez la question, et pas seulement le titre. – itachi