[spip-dev] dates avant 1970

re-salut,
  on est tombé sur un cas bien chiant avec les manipulations de dates :
- sous windows, tout ce qui date d'avant 1970 n'est pas manipulable
- sous linux pas trop jeune, ça coince avant 1901 (ben ouais, j'ai
  besoin de stocker des dates d'il y a 2 siècles :slight_smile:
- sous les derniers linux (glibc récente), ça coince aussi avant 1970
  (et je trouve que c'est une sacrée régression, mais c'est un
  autre débat).

  un collègue à trouvé un contournement via la lib adodb_date
(http://phplens.com/phpeverywhere/adodb_date_library), mais il faut
alors patcher la fonction affdate_base.
  on va sûrement en faire une contrib (quand on aura 5 minutes ...),
mais avant ça, quelqu'un a t'il une solution plus light ?
  notamment, vous semble t'il pertinent de passer par un mecanisme
à la fonction "*_dist" pour permettre de surcharger affdate_base dans
mes_fonctions.php ?
  ça éviterait à cette contrib de nécessiter un patch (même s'il est
pas bien gros).

  on est tombé sur un cas bien chiant avec les manipulations de dates :
- sous windows, tout ce qui date d'avant 1970 n'est pas manipulable
- sous linux pas trop jeune, ça coince avant 1901 (ben ouais, j'ai
  besoin de stocker des dates d'il y a 2 siècles :slight_smile:
- sous les derniers linux (glibc récente), ça coince aussi avant 1970
  (et je trouve que c'est une sacrée régression, mais c'est un
  autre débat).

Aïe.

  un collègue à trouvé un contournement via la lib adodb_date
(Cell Phone Tracker App - Track Mobile Phone Location Free), mais il faut
alors patcher la fonction affdate_base.

Seulement affdate ? Pas time() et date() ? Ah, c'est peut-être parce qu'on
utilise les dates au format MySQL pour les champs date et date_redac ?

  on va sûrement en faire une contrib (quand on aura 5 minutes ...),
mais avant ça, quelqu'un a t'il une solution plus light ?

Patcher time() en spip_time() ?

  notamment, vous semble t'il pertinent de passer par un mecanisme
à la fonction "*_dist" pour permettre de surcharger affdate_base dans
mes_fonctions.php ?

non

  ça éviterait à cette contrib de nécessiter un patch (même s'il est
pas bien gros).

ça mérite un patch.

-- Fil

> un collègue à trouvé un contournement via la lib adodb_date
> (Cell Phone Tracker App - Track Mobile Phone Location Free), mais il faut
> alors patcher la fonction affdate_base.

Seulement affdate ? Pas time() et date() ? Ah, c'est peut-être parce qu'on
utilise les dates au format MySQL pour les champs date et date_redac ?

  En fait, cette lib propose un remplaçant à date (adodb_date) et
sûrement idem pour time (j'avoue que j'y ai pas regardé plus que ça).
  Donc il faut simplement que affdate_base appelle adodb_date à la place
de date.

  Je sais pas s'il y a d'autres endroits où il y a des appels à date,
time ou autre. Quand on fera la contrib, on fera la paire de grep qui
va bien pour remplacer systématiquement.

Patcher time() en spip_time() ?

  Tu veux dire avoir une fonction spip_time qui appelle time par défaut,
et qu'on peut patcher en adodb_time pour minimiser le nombre de modifs ?

> notamment, vous semble t'il pertinent de passer par un mecanisme
> à la fonction "*_dist" pour permettre de surcharger affdate_base dans
> mes_fonctions.php ?
non
> ça éviterait à cette contrib de nécessiter un patch (même s'il est
> pas bien gros).
ça mérite un patch.

Ok. à suivre alors ...