Convertir nombre de jours en mois

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 : Convertir nombre de jours en mois

par Hywan » 04 déc. 2008, 14:08

Hey :),

Sékil' a donné la solution. Tu arrives à obtenir l'écart entre deux dates (par une simple soustraction si tu travailles avec le format TimeStamp). Une petite boucle avec une valeur temporaire, un bref calcul Mathématiques pour s'éviter des boucles trop longues, et on utilise la fonction date('d') pour afficher le résultat, et le tour est joué. Oublie ton code et revoit ça au calme, la solution n'est pas si compliquée :).

par Bisvan » 04 déc. 2008, 10:49

En fait je suis une truffe...vous avez raison :) je me suis compliqué la vie !

Bon j'ai fait une boucle un peu "artisanale" car je trouvais pas comment gérer le strtotime("+1 month", $ts) dans un for().

La voici :
setlocale(LC_TIME, 'fr_FR');

$mois_debut="9";
$annee_debut="2008";

$mois_fin="4";
$annee_fin="2010";

for($a=$annee_debut; $a <= $annee_fin; $a++)
{
	if($a!=$annee_debut && $a!=$annee_fin)
	{
		for($m=1; $m <= 12; $m++)
		{
		$mois=strftime("%B", mktime(0, 0, 0, $m, 1, $a));
		echo ''.$mois.' '.$a.'<BR>';
		}
	}
	elseif($a!=$annee_debut && $a==$annee_fin)
	{
		for($m=1; $m <= $mois_fin; $m++)
		{
		$mois=strftime("%B", mktime(0, 0, 0, $m, 1, $a));
		echo ''.$mois.' '.$a.'<BR>';
		}
	}
	else
	{
		for($m=$mois_debut; $m <= 12; $m++)
		{
		$mois=strftime("%B", mktime(0, 0, 0, $m, 1, $a));
		echo ''.$mois.' '.$a.'<BR>';
		}
	}

}
Je sais c'est pas beau :? mais si vous avez une idée pour rendre cette fonction un peu plus "design" je suis preneur :P

par caroube » 03 déc. 2008, 13:47

Un simple tableau contenant les mois
1-->janvier
2-->février
...
12->décembre

tu connais l'indice de ton mois de départ (9) et celui de ton mois d'arrivée (12). Il ne te reste plus qu'à afficher les éléments 9 à 12 du tableau. Et si tu changes d'année, tu recommences à 1.

Sinon, tu peux jouer avec une boucle strtotime("+1 month", $ts) qui commence avec le $ts (timestamp) de ta date de départ et qui finit dès que tu as dépassé le $ts de ta date d'arrivée.

par Sékiltoyai » 03 déc. 2008, 13:47

Tu t'y prends mal, je ne vois pas en quoi je nombre de jours peut t'aider…
Il faut utiliser simplement la partie mois de la date…

Convertir nombre de jours en mois

par Bisvan » 03 déc. 2008, 12:02

Bonjour,

J'ai fait un script qui va trouver l'écart en nombre de jour entre deux dates.
J'utilise pour cela mktime() et timestamp().
Jusque là rien de bien compliqué.

Cependant j'aimerai utiliser ce résultat pour faire une boucle qui listerait tous les mois entre ces deux dates.

Ex : écart entre le 01/09/2008 et le 03/12/2008
$ecart_nbre_jour=93

Affichage des mois entre ces deux dates :
SEPTEMBRE 2008
OCTOBRE 2008
NOVEMBRE 2008
DECEMBRE 2008

Quelqu'un aurait il une idée ? (moi et les...mois ça fait 4!)

Merciiiiii :)