2010-04-21 6 views
1

Y at-il de toute façon de trouver la différence de date en php? J'ai l'entrée de date de 2003-10-17 et de date d'échéance 2004-03-24. J'ai besoin des résultats combien de jours y a-t-il dans ces deux jours. Dites si 224 jours, j'ai besoin de la sortie en jours seulement. Je trouve la solution via mysql mais j'ai besoin de php. N'importe qui m'aide, merci d'avance.Trouver la différence de date en PHP?

Répondre

2

Vous pouvez utiliser la fonction d'horodatage d'analyse syntaxique pour convertir les dates pour horodatages, soustraire les horodateurs, puis convertir l'horodatage résultant (secondes) à jour:

floor((strtotime("2004-03-24") - strtotime("2003-10-17"))/86400); 
+0

Merci belle réponse ce – Karthik

5
$start = new DateTime('2003-10-17'); 
$end = new DateTime('2004-03-24'); 
$diff = $start->diff($end); 

echo $diff->format('%d days'); 

... devrait le faire. Pour référence, voir DateTime et DateInterval.

Attention, ceci n'est disponible que depuis PHP 5.3.

+0

je suis arrivé ce type d'erreur: Erreur fatale: Classe 'DateTime' not found – Karthik

+0

@Karthik: oui, désolé ... J'aurais dû le mentionner n'est disponible qu'à partir de PHP 5.3. –

+1

J'utiliserais DateTime :: createFromFormat ('! Y-m-d', '2003-10-17') principalement parce que je n'aime pas dépendant de la fonctionnalité magic strtotime. J'ai toujours l'impression que le mois et le jour seront mélangés, même si cela semble fonctionner correctement avec le format aaaa-mm-jj. – goat

0

L'exemple est comme ci-dessous:

$startDate = new DateTime('2013-04-01'); //intialize start date 
$endDate = new DateTime('2013-04-30'); //initialize end date 
$holiday = array('2013-04-11','2013-04-25'); //this is assumed list of holiday 
$interval = new DateInterval('P1D'); // set the interval as 1 day 
$daterange = new DatePeriod($startDate, $interval ,$endDate); 
foreach($daterange as $date){ 
if($date->format("N") <6 AND !in_array($date->format("Y-m-d"),$holiday)) 
$result[] = $date->format("Y-m-d"); 
} 
echo "<pre>";print_r($result); 

Un blog de détail est ici: http://goo.gl/YOsfPX