web-dev-qa-db-ja.com

日時スタンプに5時間を追加する方法は?

データベースに編集列を設定しました。データベースエントリが変更されるたびに、正しい時刻がスタンプされます。何らかの奇妙な理由により、この日時が表示されるときは常に、データベースのタイムスタンプより5時間遅れて表示されます。

私ができる唯一のことは、時間に5時間を追加することですが、オンラインの例から組み合わせを取得してスタンプに5時間を追加することはできません。誰かが私を助けてくれることを願っていました。

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

デフォルトでは、JHtml::date()はユーザーのタイムゾーンを考慮します。設定されていない場合は、デフォルトでサイトのタイムゾーンになります(グローバル構成で設定)。日付をそのままにするには、値nullを使用して別の引数を渡します。また、フォーマットにハードコードされた文字列を使用しているため、JText::_()でラップする必要はありません。

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

$db->loadResult()の最初のインスタンスも削除する必要があります。これらのうち2つを使用すると、クエリが2回実行されます。

3
Sharky