【问题标题】:Change from Local Time to GMT for unix format time对于 unix 格式时间,从本地时间更改为 GMT
【发布时间】:2011-05-20 13:44:40
【问题描述】:

使用 PHP/mysql 我使用函数 mktime 实现了一个表单,用于在 db 中以 unix 格式保存时间。视图表单使用日期函数以可读格式显示时间。 直到现在我才发现我使用的是本地时间,而不是要求的 GMT (UTC) 时间。 在 sw 中更改 gmmktime 的 mktime 和 gmdate 的日期是非常容易的。但问题是是否有办法将数据库中已经存在的时间(以 unix 格式)从本地时间转换为格林威治标准时间。 谢谢

【问题讨论】:

    标签: php mysql time


    【解决方案1】:

    您可以使用函数gmdate()。看看Manual

    【讨论】:

      【解决方案2】:

      这是我编写的用于进行时区转换的函数。应该是不言自明的:

      function switch_timezone($format, $time = null, 
          $to = "America/Los_Angeles", $from = "America/Los_Angeles")
      {
          if ($time == null) $time = time();
      
          $from_tz = new DateTimeZone($from);
          $to_tz = new DateTimeZone($to);
      
          if (is_int($time)) $time = '@' . $time;
      
          $dt = date_create($time, $from_tz);
      
          if ($dt)
          {
              $dt->setTimezone($to_tz);
              return $dt->format($format);
          }
      
          return date($format, $time);
      }
      

      【讨论】:

        猜你喜欢
        • 2012-02-22
        • 2012-03-20
        • 1970-01-01
        • 1970-01-01
        • 2018-06-16
        • 1970-01-01
        • 2015-12-19
        • 2015-03-08
        • 2013-10-29
        相关资源
        最近更新 更多