mktime, afficher des dates dans le futur

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 : mktime, afficher des dates dans le futur

par Hywan » 28 mars 2008, 14:12

strtotime fonctionne très bien, je l'utilise assez régulièrement.
Attention toutefois à bien définir le date.timezone.

Passionnant

par Cliquagauche » 28 mars 2008, 12:53

Bonjour et merci a tous :-)

Je viens de passer un long moment avec date() et strtotime()

ça donne beaucoup d'idées, je vais continuer a explorer ces pages

Merci Caroube, le code fonctionne bien!!


Mathieu

par caroube » 28 mars 2008, 10:44

Tu peux aussi te passer de timestamp dans strtotime() en spécifiant la date, eg "first sunday, march 2011", "last sunday, march 2011".
Désolé, cela ne fonctionne pas
$first = strtotime("first sunday march 2011");
echo date("l d/m/y", $first); -------> Monday 28/03/11 !!!!

$last = strtotime("last sunday march 2011");
echo date("l d/m/y", $last); -------> Monday 28/03/11 !!!!

$first = strtotime("first sunday, march 2011");
echo $first; -------> -1
En revanche, dans les commentaires de strotime(), "jay at jaymunda dot com" a écrit une fonction get_day qui permet de faire
$first = get_day("first", "sunday", "03-2011");
$last = get_day("last", "sunday", "03-2011");

par Hubert Roksor » 27 mars 2008, 23:11

Tu peux aussi te passer de timestamp dans strtotime() en spécifiant la date, eg "first sunday, march 2011", "last sunday, march 2011".

http://www.gnu.org/software/tar/manual/ ... r_113.html

par caroube » 27 mars 2008, 21:56

Le mois de mars 2011 aura 4 dimanches: les 3 mars, 10 mars, 17 mars, 24mars, 31 mars.
3, 10, 17, 24 et 31 : ça fait 5 dimanches et pas 4. Et ce sera en 2013 et pas en 2011 :roll:

Penser à la fonction strtotime() très pratique et trop souvent oubliée
$debutmois = strtotime("1 march 2011"); //1er mars 2011
if (date("w", $debutmois) == 0) {
  $dim1 = $debutmois; //Si le 1er est un dimanche
} else {
  $dim1 = strtotime("first sunday", $debutmois); //1er dimanche après le 1er du mois
}
$dim2 = strtotime("next sunday", $debutmois); 
$dim3 = strtotime("third sunday", $debutmois); 
$dim4 = strtotime("fourth sunday", $debutmois); 
$dim5 = strtotime("fifth sunday", $debutmois); 
echo date("l d/m/y", $debutmois)."<br>";
echo "--------<br>";
echo date("l d/m/y", $dim1)."<br>";
echo date("l d/m/y", $dim2)."<br>";
echo date("l d/m/y", $dim3)."<br>";
echo date("l d/m/y", $dim4)."<br>";
if (date("n", $dim4) == date("n", $dim5)) {
	echo date("l d/m/y", $dim5)."<br>";	//Affichage si le 5e dimanche est dans le même mois que le 4e dimanche
}
(attention, il n'y a pas de "second sunday", il faut utiliser "next" pour éviter les ambiguités avec les secondes)
il ne reste plus qu'à calculer les suivants en vérifiant que tu ne passes pas sur le mois suivant

par Nagol » 27 mars 2008, 19:36

une astuce consiste à utiliser une incrémentation dans ton mktime sur le jour, tu pourrais par exemple boucler sur un incrément +6 sur le jour à partir d'un dimanche que tu aura spécifié en dur et en faisant mumuse avec date('t') qui te donne le nombre de jour du mois. Un petit peu de math et ca devrait se faire.

mktime, afficher des dates dans le futur

par Cliquaumilieu » 27 mars 2008, 17:32

Bonjour

Je cherche a afficher les dates (en chiffre) des dimanches d'un mois a venir
Par exemple:
Le mois de mars 2011 aura 4 dimanches: les 3 mars, 10 mars, 17 mars, 24mars, 31 mars.

Si quelqu'un connais une solution ce serait super! car je n'y connais pas grand chose en php, j'ai bien fais des essais mais je ne trouve pas :-(

Merci d'avance
Mathieu