PHP date

Résolu/Fermé
eXo - 25 mai 2009 à 11:54
 Utilisateur anonyme - 26 mai 2009 à 13:36
Bonjour,

J'ai un formulaire qui me retourne une date de début et une date de fin.
Je souhaiterai savoir comment trouvé toute les dates comprise entre ces deux là

Exemple:
début : mercredi 20 janvier 2009
fin : vendredi 22 mai 2009

Pour effectuer le test et trouvé si la date existe dans mon tableau, c'est pas un problème, mais comment testé toute les date comprise entre ceux deux là par exemple ?

Merci beaucoup pour votre aide qui me sera précieuse..

1 réponse

En fait, j'ai déjà vu tout sa, mais je vois pas comment associé sa à une date sous la forme 15 janvier 2009 par exemple, c'est important de pouvoir tester ces valeurs là parce que apres, je recherche l'existence du mots dans un tableau...
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135 > eXo
25 mai 2009 à 12:11
Tu fais une petite fonction de conversion, qui te resort à partir de la chaine 15 janvier 2009 le jour, le mois et l'année sous forme numérique...

Pas très compliqué selon la forme de ta date, au pire une petite expression régulière te sortira facilement le bon résultat.
0
Utilisateur anonyme > eXo
25 mai 2009 à 12:17
$debut = mktime(0, 0, 0, 1, 20, 2009); //janvier 20 2009 (notation américaine) 
$fin = mktime(0, 0, 0, 5, 22, 2009); //mai 22 2009 

$i= $debut + 86400; // avance d'un jour, 1 jour = 86400 secondes

echo "Voici les dates entre le ".date("d/m/Y", $debut)." et le ".date("d/m/Y", $fin)."<br/>";
while($i < $fin)
{
	echo date("d/m/Y", $i)."<br/>";
	$i+=86400; // + 1 jour
}


Ensuite pour les variables debut et fin à toi de faire en sorte de reconnaitre que janvier = 1 février=2 ...
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135 > eXo
25 mai 2009 à 12:32
Bon une petite piste pour la fonction :
<?php
function my_mktime( $date ) {
  $tmpDate = explode( ' ', $date );
  $jour = $tmpDate[0];
  $mois = strtolower( $tmpDate[1] );
  $annee = $tmpDate[2];
  switch ( $mois ) {
    case 'janvier': $mois=1; break;
    case 'février' : $mois=2; break;
    // etc
  }
  return mktime(0, 0, 0, $mois, $jour, $annee);
}

// Utilisation :
$date = my_mktime( '17 juin 2007' );
?>
Attention, cette fonction ne fait actuellement aucun contrôle sur la validité des données : il faudrait vérifier qu'aprèe le explode on ait bien trois parties, ni plus, ni moins, que le jour et l'année sont numériques et valides, que le mois soit valide...
0
Utilisateur anonyme > pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010
25 mai 2009 à 13:38
Bah avec nos deux post, on a résolu le problème =)
0