J'ai une date dans ce format Fri, 15 Jan 2016 15:14:10 +0800
, et je veux afficher l'heure comme ceci 2016-01-15 15:14:10
.
Ce que j'ai essayé c'est:
$test = 'Fri, 15 Jan 2016 15:14:10 +0800';
$t = date('Y-m-d G:i:s',strtotime($test));
echo $t;
Mais il affiche la date dans ce format: 2016-01-15 7:14:10
, ça devrait être 2016-01-15 15:14:10
.
Comment puis-je faire ceci?
Utilisez H
à la place:
$test = 'Fri, 15 Jan 2016 15:14:10 +0800';
$t = date('Y-m-d H:i:s',strtotime($test));
echo $t;
[~ # ~] h [~ # ~] : format d'une heure sur 24 avec des zéros de début 00 à 23
G devrait être le même, mais sans zéros non significatifs. Je soupçonne que votre PHP est réglé sur un fuseau horaire différent de +0800
. Pouvez-vous confirmer votre fuseau horaire (date_default_timezone_get()
)?
OP a confirmé que son fuseau horaire était réglé sur UTC, auquel cas il masque parfaitement le sens qu'il affiche 7 heures du matin, car date
utilise le fuseau horaire par défaut de PHP.
Si vous voulez "hériter" du fuseau horaire, tout en obtenant plus de flexibilité, vous devez passer à DateTime
:
echo (new DateTime($test))->format("Y-m-d H:i:s");