Calcul nombre de jours entre deux dates [php] [Résolu/Fermé]

Signaler
Messages postés
35
Date d'inscription
mardi 7 septembre 2010
Statut
Membre
Dernière intervention
11 septembre 2014
-
Messages postés
19
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 mai 2016
-
Bonjour,

Voila j'aimerais calculé la différence entre deux dates AAAA-MM-JJ pour avoir le nombre de jours.

datedebut
datefin
dureesejour

Quelqu'un aurait une requête php pour cela?

Merci beaucoup :)
A voir également:

5 réponses

Salut,
Il te suffit de faire une différence de tes 2 dates :
$dureesejour = (strtotime($datefin) - strtotime($datedebut));  

puis le diviser la durée par 86400 pour avoir le nombre de jours, parce que le résultat est en seconde! (60*60*24)
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Cela marche sauf que j'ai 11 chiffres après la virgules séparant les jours tel que ; 197.04166666667

Quelqu'un a-t-il une idée pour enlever tous ces chiffres après la virgule ?
Messages postés
14
Date d'inscription
dimanche 31 mars 2013
Statut
Membre
Dernière intervention
1 avril 2013
279
Pour calculer la différence entre 2 dates (en mois, jours, heures, minutes et secondes), il faut faire la différence entre les 2 timestamp et ensuite décomposer cette différence avec des divisions et des modulo.
Voici un tutoriel :
http://www.finalclap.com/faq/110-php-calcul-difference-deux-date
il suffit de mettre une action dans ton formulaire. quand tu clic sur ton bouton submit, tu reviens ta page avec des variables $_POST de ton formulaire définies, puis tu fais ton calcul.

echo "<form method='POST' action='tapage.php'>";
echo "<input type='text' name='deb' value='2011/06/30' />";
echo "<input type='text' name='fin' value='2011/07/05' />";
echo "<input type='submit' value='calcul' />";
echo "</form>";

if (isset ($_POST['fin']) && isset ($_POST['deb']))
{
	$dureeSejour = strtotime($_POST['fin']) - strtotime($_POST['deb']);
	echo $dureeSejour/86400;
}
Messages postés
35
Date d'inscription
mardi 7 septembre 2010
Statut
Membre
Dernière intervention
11 septembre 2014
2
Merci beaucoup :)
Messages postés
35
Date d'inscription
mardi 7 septembre 2010
Statut
Membre
Dernière intervention
11 septembre 2014
2
j'arrive pas a l'inséré... :/
voila mon code :

<form method="post" action="connection.php"><table border=1>

<tr><td><label for="nom_client">Nom : *</label></td><td><input type="text" name="nomclient" size="25" required><select name="type">
<option value="LOC" >LOCATION</option>
<option value="REP" >REPARATION</option>
</select></td></tr>
<tr><td><label for="prenom_client">Prénom : *</label></td><td><input type="text" name="prenomclient" size="25" required></td></tr>
<tr><td><label for="adresse_client">Adresse : *</label></td><td><input type="text" name="adresseclient" size="50" required></td></tr>
<tr><td><label for="postal_commune">Code Postal / Commune : *</label></td><td><input type="text" name="postalcommune" size="25" required></td></tr>
<tr><td><label for="pays">Pays : *</label></td><td><input type="text" name="pays" size="25" required></td></tr>
<tr><td><label for="telephone">N° Tel Portable : *</label></td><td><input type="tel" name="telephone" size="25" required></td></tr>
<tr><td><label for="mail_client">Adresse Mail *:</label></td><td><input type="email" name="mailclient" size="50" required></td></tr>
<tr><td><label for="lieuvacances">Lieu de vacances / Emplacement : *</label></td><td><input type="text" name="lieuvacance" size="50" required></td></tr>
<tr><td><label for="datedebut">Date de début : *</label></td><td><input type="text" name="datedebut" class="calendrier" required />( AAAA/MM/JJ )</td></tr>
<tr><td><label for="datefin">Date fin : *</label></td><td> <?php include ("calendar.php"); ?><input type="text" name="datefin" class="calendrier" required />( AAAA/MM/JJ )</td></tr>
<tr><td><label for="dureesejour">Durée du séjour : </label></td><td><input type="text" name="dureesejour" size="25"( en journée )/></td></tr>
</table></br>
Messages postés
19
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 mai 2016
80
Hello
$anciennedate = "10-10-2015";
$datedujour = date("d-m-Y");
$jmoins = ((strtotime($datedujour)) - strtotime($anciennedate));
$jmoins = round($jmoins / (60*60*24));
echo "La différence entre les 2 dates est de $jmoins jours";
//affiche "La différence entre les 2 dates est de 120 jours"


Enjoy
Messages postés
35
Date d'inscription
mardi 7 septembre 2010
Statut
Membre
Dernière intervention
11 septembre 2014
2
Comment peut-on le faire instantanément en rentrant directement les deux dates dans les textbox avant qu'ils soient dans la base de donnée?
Messages postés
35
Date d'inscription
mardi 7 septembre 2010
Statut
Membre
Dernière intervention
11 septembre 2014
2
le code fonctionne aussi de mon coté qui affiche 5.... mais à la place des deux dates 2011/06/30 et 2011/07/05, j'ai deux textbox avec un calendrier pour choisir une date comment peut-on faire pour que cela fonctionne?
Cela marche sauf que j'ai 11 chiffres après la virgule séparant les jours tel que ; 197.04166666667

Quelqu'un a-t-il une idée pour enlever tous ces chiffres après la virgule ?
Messages postés
31200
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 janvier 2021
3 212 > danil
Merci pour la réponse. Le problème est qu'il n'y a d'exemple à la page de la function.variant et que je suis perdu car je débute en php.
Le manual est bien surtout quand on peut suivre les exemples
Messages postés
1
Date d'inscription
samedi 5 décembre 2015
Statut
Membre
Dernière intervention
5 décembre 2015

J'ai résolu le problème avec la function number_format() qui permet de choisir le nombre de chiffres après la décimale et ai opté pour 0.

$dateDebut = "2015/05/18" ;
$dateFin = "today";

$dureeSejour = (strtotime($dateFin) - strtotime($dateDebut));

echo number_format($dureeSejour/86400 ,0);