【问题标题】:PHP Date from Database as Timestamp - add X hours数据库中的 PHP 日期作为时间戳 - 添加 X 小时
【发布时间】:2014-06-10 22:43:35
【问题描述】:

我已经谷歌了,我放弃了,这里是......

我一直在处理时间/时间戳等方面遇到问题,我正在尝试以 SQL TIMESTAMP 格式从我的数据库中提取日期,这就是我目前所拥有的......

 $db = $row_rsSearch['created_date'];
 $newdate =  date("d/m/Y H:i:s", strtotime('+3 hours', $db));

它有什么问题?当数据库提供时,我收到“31/12/1969 20:33:34”的返回... 2014-04-25 02:19:53

提前致谢。

【问题讨论】:

  • 是的,你是对的。您正在从数据库中获取值“2014-04-25 02:19:53”,但在 php 代码端,您正尝试使用“/”转换来转换日期。所以它会给你这样的方式,所以只需重写该行如下$newdate = date("d-m-Y H:i:s", strtotime('+3 hours', $db));

标签: php mysql database date timestamp


【解决方案1】:

如果我没记错的话,你想为每个日期增加 3 小时吗?

为什么不在查询中做呢?

示例:

SELECT `date` + INTERVAL 3 HOUR AS created_date FROM `TABLE`

【讨论】:

    【解决方案2】:

    使用DateTime::createFromFormatDateTime::add

    $date = DateTime::createFromFormat('Y-m-d H:i:s', '2014-04-25 02:19:53');
    $date->add(new DateInterval('PT3H'));
    
    echo $date->format("d/m/Y H:i:s");
    

    【讨论】:

      【解决方案3】:

      strtotime 在您使用它来计算新的时间戳时需要一个时间戳。 在你的情况下:

      $newdate =  date("d/m/Y H:i:s", strtotime('+3 hours', strtotime($db)));
      

      【讨论】:

        【解决方案4】:

        太好了,谢谢!

        对于其他用户,这是我完成的代码(添加了 8 小时)

          $db = $row_rsSearch['created_date'];
          $date = DateTime::createFromFormat('Y-m-d H:i:s', $db);
          $date->add(new DateInterval('PT8H')); 
        

        【讨论】:

          【解决方案5】:

          也可以试试这个:

          $db = $row_rsSearch['created_date'];
          $newdate =  date("d/m/Y H:i:s", strtotime($db.'+3 hours'));
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-10-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-05-03
            相关资源
            最近更新 更多