joomla2.5 日期类 JDate的用法

新版的JDate其实是PHP5内置日期类DateTime的扩展类,所以继承所有DateTime的方法,即可以把JDate当DateTime类来使用。

得到当前时间:

$now = JFactory::getDate();

从客户端录入的日期字串转化为JDate对象:

$config = JFactory::getConfig();$date = JFactory::getDate($postDate, new DateTimeZone($config->get('offset')));

以下是得到前天的零时例子(PHP > 5.3.0):

$config = JFactory::getConfig();// 用后台设置的TimeZone创建当前时间的对象$date = JFactory::getDate();// 减去一天,DateInterval的用法可上PHP官方网查询$date->sub(new DateInterval('P1D'));// 用toFormat去掉时分秒,重新创建新对象$date = new JDate($date->toFormat('%Y-%m-%d', true), new DateTimeZone($config->get('offset')));// format的第二参数决定是否使用TimeZone,否则会以UTC来输出echo $date->format(JText::_('DATE_FORMAT_LC2'), true);// 日期也可以用JHTML输出,默认带有TimeZone的echo JHTML::_('date', $item->publish_up, JText::_('DATE_FORMAT_LC2'));echo JHTML::_('date', $item->publish_up, 'F d, Y');

日期格式可以参考: http://www.php.net/manual/zh/function.date.php

以上代码可表现JDate更加对象化,而且和原生PHP5特征联系得更紧密。不过也许对于惯于使用timestamp进行运算的人来说会觉得很别扭。下面写一个timestamp的运算例子:

$config = JFactory::getConfig();// 用toUnix得到timestamp再减去一天的秒数$date = new JDate('now', new DateTimeZone($config->get('offset')));$date->setTimestamp($date->toUnix()-3600*24); // PHP > 5.3.0$date = new JDate($date->toUnix() - 3600*24); // PHP > 5.2.0echo $date->format(JText::_('DATE_FORMAT_LC2'), true);

关键字:joomla, jdate, #date-# jfactory

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部