2010-11-12 6 views
0

Je suis sûr que cela doit être une question commune, mais je ne trouve nulle part donc ici il va:Poussez les dates étrangement formatées en MySQL de PHP

Je dates dans ce format: 09/Jul/2003:00:03:48 -0300 et je veux les pousser dans un champ DATETIME dans MySQL.

Quelle est la manière la plus simple de le faire? En les poussant comme cela se traduit par leur mise à zéro.

Répondre

5

MySQL ne comprend pas le fuseau horaire dans DateTimes, mais vous pouvez utiliser:

STR_TO_DATE('09/Jul/2003:00:03:48', '%d/%b/%Y:%H:%i:%s') 

... pour convertir une représentation de chaîne d'une date/heure dans un DATETIME pour stocker dans la base de données.

Référence:

+0

Super merci! Je savais qu'il devait y avoir un moyen facile de le faire. Je regardais à travers les fonctions php et commençais juste à sortir regex. C'est * way * plus facile. – sixtyfootersdude

+0

@sixtyfootersdude: Si vous cherchez PHP "équivalent" (il ne convertit pas, mais il l'analyse), essayez [strptime] (http://php.net/strptime). – netcoder

0

Ma fonction préférée dans tout PHP est strtotime(). Si cela ne peut pas interpréter l'entrée alors je ne peux probablement pas coder quelque chose qui pourrait.

Je ferais quelque chose comme:

mysql_real_escape_string(date('Y-m-d H:i:s', strtotime($stragely_formatted_date))); 

pour préparer une chaîne de date pour donner à MySQL.

Comme toujours, pensez aux fuseaux horaires dans votre conception.

Le mysql_real_escape_string() est probablement inutile mais je me sens toujours plus en sécurité quand je l'utilise.

Questions connexes