Désolé si cela a été expliqué quelque part, mais jusqu'à présent, rien n'a été trouvé. J'ai donc un article publié aujourd'hui, le 14 août, à 11h11 heure locale. Cela signifie +3 heures à partir de UTC. À la table MySQL content
je peux voir:
+--------------+---------------------+
| created | 2016-08-14 08:11:01 |
+--------------+---------------------+
Ici, le fuseau horaire a déjà été appliqué, l'heure est stockée en UTC et cette heure en UTC est correcte. (Ou peut-être que je me trompe ici? J'utilise phpMyAdmin)
Je souhaite imprimer l'heure locale au moment de la création de l'article, c'est-à-dire - 11h11.
Supposons que je puisse lire cette valeur et appliquer le fuseau horaire de manière opposée et que tout devrait bien se passer, sauf que je souhaite que cette conversation ait lieu à l'avenir. Le problème est que nous avons l'heure d'été et qu'après un certain temps, je ne pouvais pas dire (du moins facilement) quel était le décalage réel le 14 août à 08h11 UTC. Avions-nous ou non cette heure? (Le décalage horaire peut être de +3 ou +2 heures par rapport à l'heure UTC en fonction de l'heure d'été). Aussi, je ne peux pas voir dans la table content
aucun enregistrement concernant le décalage temporel enregistré.
Alors, comment savoir/imprimer le temps créé, exactement 11:11
heures à l'endroit où l'article a été créé?
Supposons que Joomla fasse ça, non?
Dans les tables de base de données, les dates sont toujours en UTC .
Le temps universel coordonné, en abrégé UTC, est la principale norme temporelle selon laquelle le monde régule les horloges et l'heure. Il fait environ 1 seconde de l'heure solaire moyenne à 0 ° de longitude [1], il n'observe pas l'heure d'été. C'est l'un des successeurs étroitement liés au Greenwich Mean Time (GMT). Dans la plupart des cas, l'UTC est considéré comme interchangeable avec GMT, mais GMT n'est plus défini avec précision par la communauté scientifique.
Pour afficher la date au niveau de la page, dans le fuseau horaire général ou le fuseau horaire de l'utilisateur de Joomla, vous devez le convertir ... et vous pouvez le faire de plusieurs manières. Un exemple de code:
$timeZone = JFactory::getUser()->getParam('timezone');
if (!$timeZone)
{
$timeZone = JFactory::getConfig()->get('offset');
}
$tz = DateTimeZone($timeZone);
$date = JFactory::getDate($strdate);
$date->setTimezone($tz);
$userDate = $date->format(JText::_('A_DATE_FORMAT'), true);
En particulier, dans com_content, vous pouvez constater que la date de création de l'article est affichée de cette manière:
echo JHtml::_('date', $item->created, JText::_('DATE_FORMAT_LC4'));