[spip-dev] bug affdate et php4

Salut,

Je viens de tomber sur un problème avec affdate et PHP4 (oui je sais c'est pas à jour). Dans un squelette où #ENV{arcihves}=2010-05 on obtient ceci :

Avec SPIP 2.0.10 [15511] sous PHP Version 4.4.9 => [(#ENV{archives}|affdate{'Y-m'})] affiche 1970-01

Avec le même site sous PHP Version 5.2.12 => [(#ENV{archives}|affdate{'Y-m'})] affiche bien 2010-05

Testé aussi sous SPIP 2.0.10 [14698] et PHP Version 5.2.12 => [(#ENV{archives}|affdate{'Y-m'})] affiche bien 2010-05

Il semble donc y avoir un problème dans la fonction affdate_base lorsque $jour n'est pas défini (si je passe 2010-05-01 dans #ENV{archives} des exemples précédents plus de problème).

oui.
strtotime (son retour) a été modifié au cours des upgrades de php.

"Retourne un timestamp en cas de succès, FALSE sinon.
Avant PHP 5.1.0, cette fonction retournait -1 en cas d'échec."
dixit la doc

du coup en php < 5.1.0, "return date($vue, strtotime($numdate));"
se traduit par "return date('Y-m', strtotime(-1);"
avec $numdate = 2005-11

à partir de php 5.1.0 on a bien en retour :
"return date('Y-m', strtotime(1130799600);"