3

私が作成したカスタム コンポーネントでこのコードを作成しました。

$date = date('m/d/Y h:i:s a', time())."<br>";
echo  'Current date and time is: ' . $date;

$date = JFactory::getDate();
echo 'Current date and time is: ' . $date->toFormat() ."<br>";

最初のコードは日時を正しく表示しますが、2 番目のコードは時刻 +3 時間を表示します

configuration.php ファイルと public $offset = 'Europe/Athens'; を確認しました。そして正しいです。システム構成メニューから設定も変更していますが、正しい時刻を表示するために JFactory::getDate() を修正しているようには見えません。私は何が欠けていますか?

4

1 に答える 1

9

の2番目のパラメーターについて-2番目のパラメーターでJFactory::getdate()タイムゾーンを指定する必要があると思いますので、JFactory::getDate($time=now, $tzOffset)

$date = JFactory::getDate($input='now', 'UTC');
// Set the correct time zone based on the server configuration.
$config = JFactory::getConfig();
$date->setOffset($config->getValue('config.offset'));
//Print out Date
echo $date->toFormat();

余談ですが、コンポーネントで JHtml::date() を使用する方が簡単な場合があります。これは、行数が少なく、より「Joomla ネイティブ」であるためです。これに関する API ページを参照してください。次に、次のようなコードを使用します。

echo JHtml::date($input = 'now', 'm/d/Y h:i:s a', false);

ここで$input= now は、時刻「今」を使用することを指定します。2 番目のパラメーターは日付の形式で、3 番目のパラメーターは時間設定がサーバー時間に設定されていることを意味します。ユーザーが選択した時間ではなく。

于 2012-09-28T10:03:37.377 に答える