我如何用PHP操纵MySQL Datetime,(增加小时数并转换为时区)?

时间:2017-03-19 05:00:53

标签: php mysql datetime timezone

在ma DB中,我有一个包含五列行的表: 开始时间 2.结束时间 计划开始时间 计划持续时间 5.时区

现在我想根据这个逻辑实际返回开始和结束时间:

对于既定活动:

  • 如果开始时间"不是" ' 0000-00-00 00:00:00',则使用开始时间作为 - >的开始
  • 如果结束时间"不是" ' 00:00:00',则使用结束时间作为 - >的

对于计划的活动:

  • 如果开始时间"是" ' 00:00:00',则将计划启动时间用作开始
  • 如果结束时间"是" ' 00:00:00',则使用计划启动时间+持续时间(这些是分钟::探索:200分钟。)作为结束

现在我有这个json与我的Timezone如下:

   { 
      dstOffset: 0
      rawOffset: 3600
      timeZoneId: "Europe/Zurich"
      timeZoneName:"Central European Standard Time"
    }

现在,我想将上述方法的时间转换为此时区,然后将其输出为:' 2017-03-01 00:00:00'

最佳方法是如何做到的?

1 个答案:

答案 0 :(得分:1)

您需要将unix时间戳转换为mysql时间戳。

$timeToAdd = 200; // Number of seconds
$timeToAdd = 60 * 60; // 1 hours (3600 seconds)

//using one of the above $timeToAdd you can calculate it using the following
$mysql_time = date("Y-m-d H:i:s", time() + $timeToAdd);

$ mysql_time 现在包含mysql格式的时间戳

Ex:2017-03-19 09:22:06