web-dev-qa-db-fra.com

convertir l'horodatage mysql en date et heure réelles?

J'ai des dates stockées dans une table mysql, elles sont définies pour être stockées en tant que TIMESTAMP CURRENT dans chaque ligne et sont stockées comme suit:

2010-05-29 01:17:35

mais ce que j'essaie de faire est d'utiliser en quelque sorte PHP pour pouvoir tout séparer et créer une date plus comme:

29 mai 2010 01:17

quelqu'un peut-il au moins me diriger dans la bonne voie que je devrais prendre. Toute aide est grandement appréciée!

34
mcbeav
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));

http://php.net/manual/en/function.date.php

60
deceze

Vous avez deux solutions:

  • Utilisez strtotime() pour analyser la date sur un horodatage, et date() pour le reformater en une chaîne
  • Ou utilisez la classe DateTime


En PHP, cela signifierait utiliser:

echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));

Ou :

$dt = new DateTime('2010-05-29 01:17:35');
echo $dt->format('M j Y g:i A');


strtotime + date est la solution que vous verrez la plus utilisée; mais ce n'est pas la meilleure solution: avec ceux-ci, vous travaillerez sur les horodatages UNIX, ce qui signifie une plage limitée de dates (de 1970 à 2038, si vous utilisez des entiers 32 bits).

D'un autre côté, en utilisant la classe DateTime, il n'y aura pas de limite à la plage de dates avec laquelle vous pouvez travailler.

23
Pascal MARTIN

Si vous avez un champ DATETIME dans votre table et que vous ne voulez que le champ date, alors:

SELECT DATE_FORMAT(timestamp,'%M %D, %Y') FROM Mytable;

ou:

SELECT DATE_FORMAT(timestamp,'%Y-%m-%d') FROM Mytable;

timestamp est le nom de votre colonne.

3
sreekanth