PHP, strtotime (date / timestamp), erreur de sortie texte

Salut à tous !

C’est sûrement une question complètement stupide, mais je n’ai jamais été confronté à ce souci du coup je sèche un peu.

J’ai une liste de 1500 dates au format : 16/12/04, 11/01/05, etc etc. Je veux les convertir au format timestamp UNIX, du coup j’ai fait un fichier PHP avec dedans :



<pre>
<?php
echo strtotime('16/12/04'), "\n\r";
echo strtotime('16/12/04'), "\n\r";
echo strtotime('16/12/04'), "\n\r";
echo strtotime('16/12/04'), "\n\r";

[... etc etc ...]

echo strtotime('30/12/04'), "\n\r";
echo strtotime('02/01/05'), "\n\r";
echo strtotime('02/01/05'), "\n\r";
echo strtotime('05/01/05'), "\n\r";
?>
</pre>

J’obtiens donc une liste comme ça :

1107212400

1107212400

1114898400

1120168800

1120168800

1130799600

1130799600

1130799600

1130799600

1133391600

1133391600





















1107298800

1107298800

1107298800

1109718000

1117663200

1120255200

1120255200

1120255200

1122933600

1125612000

Bon les espaces en trop sont bizarres, mais ne me gênent pas trop par contre au final je n’ai que 500 et quelques timestamp convertis au lieu des 1500 que je devrais avoir et qui son contenus dans le fichier de départ en PHP.

Donc si l’un d’entre vous peut m’éclairer ça serait super sympa !

Merci à tous.

Si par “espace” tu veux dire “lignes vides” : cela provient de tes “\n” et “\r”. Pour faire un retour charriot, utilise l’un ou l’autre, mais pas les deux.
Sinon, une façon plus propre serait d’utiliser la constante PHP_EOL.

Sinon, pour ton problème de date manquantes : peut-être certaines dates n’ont pas pu être comprise par PHP (mauvaise syntaxe).

Je crois bien que strotime() c’est pour la conversion des dates au format US (mm/dd/aa).
Si c’est bien le cas, quand tu mets
echo strtotime(‘02/01/05’), “\n\r”,
il te retourne une date, mais celle du 1er février, pas du 2 janvier
Et les lignes vides, ce seraient les lignes qu’il n’a pas pu convertir (celles où ton jour est > 12)

Oui surtout que si la syntaxe de tes dates est tjrs la même, mieux vaut explode et utiliser mktime! C’est plus carré, tu auras moins de bugs. Et question bête : c’est bien des points que tu as mis pour concaténer? (on dirait des virgules^^)

Raynor : tu peux utiliser les deux, mais dans le bon sens : \r\n ! :slight_smile:

Et pour ton format de date, le problème c’est que tu peux l’interpréter de plusieurs façons :

30/12/04 = dd/mm/yy ou dd/yy/mm

Etc.

Si ça vient de mySQL, tu as des fonctions plus avancées en mySQL pour ça.

J’ai hésité :wink:

Merci à tous pour vos réponses! J’ai tout condensé et ça m’a permis de trouver une solution.

J’ai ré-exporté toutes mes dates au format mm/dd/yy au lieu de dd/mm/yy (c’est bien ça qui causait les lignes vides, bien vu !). Puis j’ai bien fait attention de mettre dans le bon sens le retour chariot \r\n et pas l’inverse.

Merci encore.