Vous n'êtes pas identifié(e).
Pages :: 1
Saluton,
Les anglophones pourront directement lire ce post :
http://derickrethans.nl/obtaining-the-n … n-php.html
Pour les autres, j'en ai traduit l'essentiel :
Les utilisateurs de PHP se plaignent de longue date de ce que l'attribut [small]next month[/small] des fonctions de date chaînes ne retournent pas toujours le bon mois, mais saute au mois d'après; comme dans l'exemple suivant:
<?php
$d = new DateTime( '2010-01-31' );
$d->modify( 'next month' );
echo $d->format( 'F' ), "\n";
?>Le résultat de ce petit bout de script sera [small]March[/small]. [small]March[/small] notoirement ne suit pas [small]January[/small] puisque [small]February[/small] se trouve entre eux. Cependant, ce comportement de PHP est correct. Voici ce qui se passe en interne:
-. [small]next month[/small] incrémente de un le rang du mois (1 à l'origine). ce qui transforme la date en [small]2010-02-31[/small].
-. Le deuxième mois ([small]February[/small]) ne comptant que 28 jours en 2010, PHP opère une auto-correction en continuant à compter des jours ce qui le mène au 3 de [small]March[/small].[/q]
Cela peut se vérifier aisément en demandant l'affichage suivant qui retournera [small]March 3rd, 2010[/small]:<?php
echo $d->format( 'F jS, Y' ), "\n";
?>Pour pallier cet inconvénient, on pourra recourir à une nouvelle fonctionnalité de PHP 5.3 qui introduit l'expression de temps relatif [small]first day of[/small]. Que l'on peut combiner avec [small]next month, fifth month[/small] ou [small]+8 months[/small] pour atteindre le premier jour du mois spécifié. Au lieu du [small]next month[/small] de l'exemple précédent, on utilise [small]first day of next month[/small] comme ci-dessous:
<?php
$d = new DateTime( '2010-01-08' );
$d->modify( 'first day of next month' );
echo $d->format( 'F' ), "\n";
?>Ce script retournera bien [small]February[/small]. Voici ce qui se passe quand PHP interprète ces expressions [small]first day of next month[/small] :
-.[small]next month[/small] incrémente de un le rang du mois (1 à l'origine). ce qui transforme la date en [small]2010-02-31[/small].
-.[small]first day of[/small] met le rang du jour à 1, il en résulte la date 2010-02-01.
-.la fonction de formatage de date retourne bien [small]February[/small].
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Pages :: 1