Nombre de jour entre 2 dates

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Nombre de jour entre 2 dates

Re: Nombre de jour entre 2 dates

par Yosh » 04 nov. 2011, 16:51

Et si tu es php >= 5.3

Il y a la classe DateTime et surtout DateInterval

Re: Nombre de jour entre 2 dates

par Castor Gaspard » 04 nov. 2011, 16:38

Bonjour,

J'arrive après la bataille, mais j'ajoute mon grain de sel, puisque je passe par ici. Je ne crois pas que Php sache encore calculer les dates antérieures à 1970, mais la classe Date de Pear le fait très bien... à condition de ne pas calculer un écart de plus de 67 ans, avec une syntaxe comme...
$span = new Date_Span();
$span->setFromDateDiff($Day_end, $Day_start);
Cordialement,

Gaspard

Re: Nombre de jour entre 2 dates

par dunbar » 04 nov. 2011, 16:22

Peut-être que certains sont bigleux, mais les deux solutions poster reste meilleur que le script d'origine \:D/

Re: Nombre de jour entre 2 dates

par Cyrano » 04 nov. 2011, 16:02

Il y en a qui n'ont pas les yeux en face des trous ... :roll:

Fabrice, observe bien ce que tu envoies à ta fonction : le premier paramètre devrait être correct si la colonne dans la table de ta base de données est au format DATE. Par contre le second paramètre est au format DATETIME. DOnc ta fonction reçoit par exemple '2011-11-01' et '2011-11-04 14:35:10'.

Que se passe-t-il dans ta fonction ? Un appel à explode récupère les éléments séparés par un tiret : pour l'année et le mois, pas de soucis, mais pour le jour, il aboutit à « 04 14:35:10 » au lieu de simplement « 04 », et donc c'est comme si tu faisais ensuite un maketime comme ceci :
mktime(0, 0, 0, 11, 04 14:35:10, 2011)
Le quatrième paramètre est-il correct à ton avis ?

CQFD... :-*

Re: Nombre de jour entre 2 dates

par dunbar » 04 nov. 2011, 15:22

Ou DATEDIFF pour le faire directement via MySQL
SELECT DATEDIFF('2011-11-04' , '2011-11-02');
//Affichera 2

Re: Nombre de jour entre 2 dates

par stealth35 » 04 nov. 2011, 13:27

utilise date_diff

Nombre de jour entre 2 dates

par fabrice88250 » 04 nov. 2011, 13:23

Bonjour,
pour compté le nombre de jours entre 2 date j'utilise le code suivant :
function NbJours($debut, $fin) {

  $tDeb = explode("-", $debut);
  $tFin = explode("-", $fin);

  $diff = mktime(0, 0, 0, $tFin[1], $tFin[2], $tFin[0]) - 
          mktime(0, 0, 0, $tDeb[1], $tDeb[2], $tDeb[0]);
  
  return(($diff / 86400)+1);

}

	$date1 = $result['datedemande'];
	$date2 = date("Y-m-d H:i:s", time());

// j'appel la fonction
$Nombres_jours =  NbJours($date1, $date2);
// j'affiche le resultat
echo ' soit : '.$Nombres_jours. ' jours';

mon soucis est que sa fonctionnait bien il y a encore quelque semaine j'avais bien un résultat correct mais depuis une mise a jour de l’hébergeur (je ne saurait dire quoi) au lieu d'avoir un resultat rond comme 3 jours j'ai des résultats à virgules !

Savez vous comment je pourrait faire pour retrouver un bon résultat ?