zoukankan      html  css  js  c++  java
  • joomla组件开发中的时区问题

    joomla的所有组件的日期数据,都统一使用mysql的datetime,输出格式类型于2004-02-12T15:19:21


    这种格式好处是在数据库中可以很直观地看到时间,但仅仅只是有这个好处,坏处却一大堆,例如不方便两个日期比较,不方便计算日期之间间隔了多久,总之一切日期运算都很不方便!joomla又是个多语言CMS系统,而datetime这种格式要表达时区概念,必须在mysql的datetime上加上offset,而mysql的datetime则始终是UTC。例如中国的时区是加8小时,那么从数据库中得到的datetime还需要加上8小时,时间才是最准确的。这种换算非常重要,而且也是很容易让人忽略的部分。


    以下介绍如何准确地获取与写入时间:

    <?php
    // 获取从数据库中得到的时间并显示
    echo JHTML::_('date',$row->datetime , JText::_('DATE_FORMAT_LC2'));
    
    // 录入时间字串,到数据库中查询
    $config =& JFactory::getConfig();
    
    // 得到系统时区
    $offset = $config->getValue('config.offset');
    $jdate = JFactory::getDate('2001-1-2', $offset);
    $query .= " AND i.created >= '".$jdate->toMySQL(true)."' ";
    
    // 用当前时间进行查询
    $config = &JFactory::getConfig();
    $tzoffset = $config->getValue('config.offset');
    $date = &JFactory::getDate($row->created, $tzoffset);
    
  • 相关阅读:
    linux-centos7 安装 maven 代码管理工具,以及常见配置
    linux-centos7 安装 jre + tomcat 实现 web 服务器
    python 开发语言 博客目录
    生存分布函数
    债务偿还
    密度聚类算法
    POI兴趣点搜索
    区域地址搜索
    地址之间的距离
    地理坐标转换
  • 原文地址:https://www.cnblogs.com/catcat811/p/2406838.html
Copyright © 2011-2022 走看看