【问题标题】:How to increment a MySQL timestamp in PHP?如何在 PHP 中增加 MySQL 时间戳?
【发布时间】:2011-08-03 23:05:00
【问题描述】:

所以我有一个 MYSQL 时间戳,它生成的值比应有的值提前 4 小时。我将如何从 MySQL 时间戳中减去 4hrs 并显示它?

这是我当前的代码

$mdate = date('F j, Y, g:i a',strtotime( $bm->date_added)); 
//$bm->dated_added returns the times stamp//
echo $mdate;

谢谢

【问题讨论】:

  • 这是一个野蛮的解决方案,它不会试图找出为什么你还有几个小时。你在哪个时区?您的服务器设置为哪个时区?

标签: php mysql datetime


【解决方案1】:

您应该真正找出根本问题并解决它。很可能您需要设置 MySQL 的时区以适合您自己(或者服务器本身的日期设置错误)。

也就是说,您可以从 strtotime 结果中减去 14,400 秒。

$mdate = date('F j, Y, g:i a',strtotime($bm->date_added) - 14400); 

【讨论】:

    【解决方案2】:

    如果您无法更改服务器时间以反映适当的时间戳,请在查询中使用 SUBTIME() 函数

    【讨论】:

      【解决方案3】:

      当提供第二个参数时,strtotime() 将根据此日期执行计算:

      $mdate = date('F j, Y, g:i a', strtotime('-4 hours', $bm->date_added)); 
      

      strtotime() 可以根据这些修饰符执行多个计算。来自manual 的示例:

      <?php
      echo strtotime("now"), "\n";
      echo strtotime("10 September 2000"), "\n";
      echo strtotime("+1 day"), "\n";
      echo strtotime("+1 week"), "\n";
      echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
      echo strtotime("next Thursday"), "\n";
      echo strtotime("last Monday"), "\n";
      ?>
      

      【讨论】:

        【解决方案4】:

        SQL 方法:

        SELECT TIMESTAMPADD(the_timestamp, INTERVAL -4 HOURS)
        

        这将返回您的偏移时间

        【讨论】:

          猜你喜欢
          • 2010-12-12
          • 2018-10-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-15
          • 2011-07-16
          • 1970-01-01
          • 2015-08-01
          相关资源
          最近更新 更多