web-dev-qa-db-fra.com

Comment ajouter 5 heures à un timbre datetime?

J'ai mis en place une colonne d'édition dans la base de données, elle marque l'heure correcte chaque fois qu'une modification est apportée à l'entrée de la base de données. Pour une raison quelconque, chaque fois que cette date et l'heure sont affichées, il affiche 5 heures de retard sur l'horodatage dans la base de données.

La seule chose que je puisse comprendre est d’ajouter 5 heures à l’heure, mais il me semble impossible d’obtenir des combinaisons parmi les exemples en ligne, mais simplement d’ajouter 5 heures au tampon. J'espérais que quelqu'un pourrait m'aider.

if ($comment->deleted == 1) {  } else { 

   $db = JFactory::getDbo();
   $db->setQuery('SELECT editdate 
                  FROM #__jcomments
                  WHERE id = ' . $comment->id .'');
   $db->loadResult();
   $edit = $db->loadResult();

   if ($edit > 0) { 
   echo JHtml::_('date', $edit, JText::_('l F j Y g:ia'));  } }
1
Mythic

Par défaut, JHtml::date() représente le fuseau horaire de l'utilisateur, qui, s'il n'est pas défini, correspond au fuseau horaire du site (défini dans la configuration globale). Passez un autre argument avec la valeur null pour laisser la date telle quelle. De plus, comme vous utilisez une chaîne codée en dur pour le format, vous n'avez pas besoin de l'envelopper dans JText::_():

echo JHtml::_('date', $edit, 'l F j Y g:ia', null);

Vous devez également supprimer la première instance de $db->loadResult(). En ayant deux d'entre eux, vous exécutez la requête deux fois.

3
Sharky