2016-10-20 3 views
0
$duedate = date("Y")."-".$row['due_date'];  //$row['due_date'] = 08-23 
$submitdate= $row['sub_date'];  //2016-08-29 
$diff = date_diff($duedate,$submitdate); 
echo $diff->format("%d days"); 

Erreur 1 = date_diff() paramètre 1 à attend être DateTimeInterface, chaîne donnée .....Comment ajouter année en objet date qui ont seulement le mois et la date

Erreur 2 = Appel à une fonction membre format() sur boolean dans .....

+0

ce que u ont en $ row [ 'due_date'] ??? –

+0

essayez écho diff- $> Format ("% R% un jour"); –

+0

// $ row [ 'due_date'] = 08-23 –

Répondre

2

date_diff function nécessite qu'un objet DateTime y soit passé.

Utilisation du DateTime::createFromFormat function vous êtes en mesure de créer un objet DateTime à partir d'une chaîne, puis utilisez dans date_diff.

(Ce code n'est pas testé et je suis tout à fait nouveau pour PHP et, je l'espère, que cela vous aide!)

//Create the date from our records and the current year. 
$dueDate = DateTime::createFromFormat('Y-m-d', date("Y")."-".$row['due_date']); //$row['due_date'] = 08-23 
$submitDate= DateTime::createFromFormat('Y-m-d', $row['sub_date']);  //2016-08-29 

$diff = $dueDate->diff($submitDate); //Calculate the difference between the two dates 

//Echo it out 
echo $diff->format('%R%a days'); 
0

Votre code ne fonctionnera pas à moins que vous passez DateTime objet à elle. Aussi cela peut être fait en utilisant la méthode diff sur DateTime objets. Vous pouvez vérifier les exemples dans documentation.

En outre, vérifiez entre quelles dates vous voulez la différence parce qu'il peut être 6 jours à la fois positif et négatif.

$duedate = new DateTime(date("Y") . "-" . $row['due_date']); 
$submitdate = new DateTime($row['sub_date']); 
echo $duedate->diff($submitdate)->format("%R%a days"); 

Demo