web-dev-qa-db-fra.com

Date et heure au format 24 heures

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?

8
Pathik Vejani

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())?

ÉDITER

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");
22
Dencker