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);
    
  • 相关阅读:
    Photoshop 基础七 位图 矢量图 栅格化
    Photoshop 基础六 图层
    Warfare And Logistics UVALive
    Walk Through the Forest UVA
    Airport Express UVA
    Guess UVALive
    Play on Words UVA
    The Necklace UVA
    Food Delivery ZOJ
    Brackets Sequence POJ
  • 原文地址:https://www.cnblogs.com/catcat811/p/2406838.html
Copyright © 2011-2022 走看看