Joomla2.5以后,时间类 JDate 继承的是php(5.3及以上)的基础类库:DateTime
首先在后台将时区设置为 当前时区:
系统=》全局设置=》服务器=》服务器时区=》Shanghai
也可直接修改:configuration.php 中的 $offset
joomla 里获取当前时间:
//获取当前时间数组
$n1 = new JDate('now', new DateTimeZone(JFactory::getConfig()->get('offset')));
//或:
$n1 = JFactory::getDate('now', JFactory::getConfig()->get('offset'))
//获取当前时间
$n1->toSql();
用生成工具:component-creator 生成的代码,时间是这样获取的:
JFactory::getDate()->toSql();
但是,新建文章后,时间并不是当前时间,而是UTC时间。
若不想修改生成的代码,可以尝试修改date类。
找到:libraries/joomla/date/date.php 文件 大概在86行:
将:
self::$gmt = new DateTimeZone('GMT');
修改为:
self::$gmt = new DateTimeZone('Asia/Shanghai');