【问题标题】:PHP date showing wrong time despite the timestamp being correct尽管时间戳正确,PHP 日期仍显示错误时间
【发布时间】:2015-06-14 02:07:46
【问题描述】:

我遇到了 PHP 日期函数的问题,我以前从未遇到过问题。

时间戳完全正确,但是由于某些奇怪的原因 date() 输出的时间不对应。

我有以下时间戳(这绝对是正确的——当我将它回显到页面以及数据库中时,它显示为正确):

464400

然而,当我使用以下代码行时:

<?php echo date("H:i",$timestamp); ?>

我的时间是凌晨 4 点?如果我将时间戳粘贴到时间戳转换器网站中,则显示时间实际上应该是上午 9 点。

我完全被卡住了,这从来没有发生在我身上,而且这个问题最近才出现 - 代码没有改变,之前一切似乎都正常工作。

有人对这个问题有任何经验吗?任何帮助将不胜感激。

【问题讨论】:

    标签: php date timestamp


    【解决方案1】:

    该时间戳是格林威治标准时间上午 9 点,如果您在另一个时区,则需要相应地调整它。

    http://php.net/manual/en/function.date-default-timezone-set.php

      date_default_timezone_set('Europe/London');
    

    在你的 php.ini 中甚至更好

    http://php.net/manual/en/datetime.configuration.php

    date.timezone="Europe/London"
    

    或者您可以更具体地使用 GMT 而不是欧洲/伦敦(有 DST)

    【讨论】:

      【解决方案2】:

      试试这个

      // set default timezone
      date_default_timezone_set('UTC');
      //define unix timestamp
      $timestamp = 1456778973;
      // output
      echo date('d M Y H:i:s',$timestamp);
      

      也试试这个转换器http://freeonlinetools24.com/

      【讨论】:

        【解决方案3】:

        试试这个方法就行了

        时区 http://php.net/manual/en/timezones.php

        代码

        <?php
        date_default_timezone_set('Asia/Kolkata'); 
        
        $dt2=date("Y-m-d H:i:s");
        echo $dt2;
        
        ?>
        

        【讨论】:

        • $dt2 是不必要的。只要echo date("Y-m-d H:i:s"); 就可以了。
        【解决方案4】:

        时区:https://www.php.net/manual/en/timezones.php

        date_default_timezone_set('America/Chicago');

        echo date("m/d/Y h:i:s A");

        【讨论】:

          猜你喜欢
          • 2011-02-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-27
          相关资源
          最近更新 更多