Joomla 2.5显示错误的日期时间

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>";

第一段代码正确地显示了日期时间,但第二段代码显示的是比实际时间晚三个小时。我已检查configuration.php文件中public $offset = 'Europe/Athens'是否正确。我还尝试从系统配置菜单更改设置,但似乎都不能修复JFactory::getDate()显示错误时间的问题。我错过了什么?
1个回答

9
关于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”指定使用当前时间。第二个参数是日期格式,第三个参数表示时间设置为服务器时间,而不是用户选择的时间。

这是一个很好的答案,花了我一些时间才找到,但这就是 Joomla 文档的特点;-) - Adam Rifat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接