interrogation sur des 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 : interrogation sur des dates

par Ripat » 22 nov. 2006, 17:49

Tu as sans doute raison mais je suis méfiant sur le changement d'heure.

Exemple, on pourrait calculer le nombre de jours séparant deux date comme ceci:
$dateDebut = mktime(0, 0, 0, 3, 24, 2006);
$dateFin   = mktime(0, 0, 0, 3, 27, 2006);
echo ($dateFin - $dateDebut) / (24 * 60 * 60), '<br />';
Surprise! Retourne 2.95833333333

La bonne méthode maintenant avec l'argument DST de mktime()
// mktime (heure, min, sec, mois, jour, année, dst)
$dateDebut = mktime(0, 0, 0, 3, 24, 2006, 1);
$dateFin   = mktime(0, 0, 0, 3, 27, 2006, 1);
echo ($dateFin - $dateDebut) / (24 * 60 * 60), '<br />';
:wink:

par Ajoloca » 22 nov. 2006, 17:10

Bonjour,

Je ne pense pas que le chagement d'heure joue.

Tes valeurs sont à 00h00 et les chagements on lieu 02h00 -> 03h00 ou bien 03h00 -> 02h00, donc dans la même jounée.

par Ripat » 22 nov. 2006, 16:52

Plus généraliste, ceci calculera le nombre de chaque jour de la semaine entre deux dates arbitraires. Attention au problème de changement d'heure. Pas testé sur ce point.
$joursSem = array(
  array('Di', 0), array('Lu', 0), array('Ma', 0), array('Me',0),
  array('Je', 0), array('Ve', 0), array('Sa', 0)
);

// mktime (heure, min, sec, mois, jour, année)
$dateDebut = mktime(0, 0, 0, 3, 1, 2006);
$dateFin   = mktime(0, 0, 0, 11, 31, 2006);

do {
  $joursSem[date('w', $dateDebut)][1]++;
  $dateDebut += 86400;
} while ($dateDebut < $dateFin);


echo '<pre>'; print_r($joursSem);  echo '</pre>';

par Invité » 22 nov. 2006, 15:27

merci bcp toutes vos reponses vont bcp me servir

par Ryle » 22 nov. 2006, 15:01

Je ne vois pas d'autre solution que de boucler sur les jours d'un mois.
Une autre solution pour ne pas à avoir à tester chaque jour pourrait être de regarder quel jour de la semaine est le premier jour du mois, et d'utiliser le nombre de jour dans le mois pour savoir combien de fois on va le retrouver.

Y a probablement plus simple, mais la première chose qui me vient serait celle ci :

nov 2006 : 30 jours
premier jour => mercredi

mercredi : ceil(30/7) = 5
jeudi : ceil(29/7) = 5
vendredi : ceil(28/7) = 4
...
mardi : ceil(24/7) = 4

Si ça vous inspire... :)

par Ripat » 22 nov. 2006, 12:40

d'acord merci.
en faite pour le nombre de jour il faut que je fasse une boucle sur tout le mois et incrementé une variable chaque fois que je tombe sur le jour en question ?
merci
Oui.

Je ne vois pas d'autre solution que de boucler sur les jours d'un mois.

date('w', $timestamp) te retournera le numéro du jour de la semaine.

par zeus » 22 nov. 2006, 10:40

...
Sinon, date('t') te donne le nb de jours dans le mois.
Prend bien le temps de lire les réponses qu'on te donne ;)

par Invité » 22 nov. 2006, 10:18

d'acord merci.
en faite pour le nombre de jour il faut que je fasse une boucle sur tout le mois et incrementé une variable chaque fois que je tombe sur le jour en question ?
merci

par mere-teresa » 21 nov. 2006, 18:51

Pour les jours fériés, il faudra te procurer la liste selon le pays.
Sinon, date('t') te donne le nb de jours dans le mois.

par DocType » 21 nov. 2006, 18:19

En exploitant les possibilités de la fonction date() :wink:

interrogation sur des dates

par Invité » 21 nov. 2006, 17:52

Bonjour,

j'aimerai savoir de quelle manière savoir pour un mois donnée le nombre de lundi, mardi, mercredi..... il y a. De plus de quelle manière gérer les jours férié ?

Merci d'avance