【问题标题】:PHP Convert Local time to UTC DateTimePHP将本地时间转换为UTC日期时间
【发布时间】:2016-05-05 13:14:14
【问题描述】:

我想将我的本地时区 dateTime 转换为 UTC 时区 DateTime。

date_default_timezone_set('Asia/Calcutta');
$datetime = "2016-05-05 18:33:00";
echo date_default_timezone_get()."<br>"; // Asia/Calcutta
date_default_timezone_set('UTC');
echo date_default_timezone_get()."<br>"; //UTC
echo $utcDateTime = date("Y-m-d H:i:s",strtotime($datetime));

电流输出

2016-05-05 18:33:00

但是,问题是不要将本地日期时间转换为 UTC 日期时间。它将输出为 Local DateTime。

【问题讨论】:

  • 请评论否决
  • cmets + downvotes 的问题已经在 Meta 上进行了令人作呕的讨论。许多人只是选择DV并继续前进。许多人提供建议。许多人试图为新手照亮道路。但是检查 OP 的记录会导致一些人逃避他们的问题,因为他们可能不值得付出努力。
  • 在将时区设置为 UTC 之前将日期传递给 strtotime
  • 专业提示: 不要装逼,不要说你的需求很紧急。回答问题的人是生活忙碌的志愿者,就像你一样。
  • 谢谢@MacMac 它的工作就像魅力

标签: php codeigniter datetime


【解决方案1】:

在使用date_default_timezone_set 更改时区之前,您需要将日期传递给strtotime。像这样:

date_default_timezone_set('Asia/Calcutta');
$datetime = "2016-05-05 18:33:00";
$asia_timestamp = strtotime($datetime);
echo date_default_timezone_get()."<br>"; // Asia/Calcutta
date_default_timezone_set('UTC');
echo date_default_timezone_get()."<br>"; //UTC
echo $utcDateTime = date("Y-m-d H:i:s", $asia_timestamp);

【讨论】:

    【解决方案2】:

    如果我理解得很好,它应该可以工作:

    $date = DateTime::createFromFormat('Y-m-d H:i:s', '2016-05-05 18:33:00');
    # you could to pass in timezone too
    # $date = DateTime::createFromFormat('Y-m-d H:i:s', '2016-05-05 18:33:00',
    #     new DateTimeZone('America/Fortaleza'));
    
    var_dump($date->setTimezone(new DateTimeZone('UTC')));
    

    【讨论】:

      【解决方案3】:

      使用date helper:

      local_to_gmt($time = '');
      
      // $gmt = local_to_gmt(time());
      

      将 UNIX 时间戳作为输入并将其作为 GMT 返回。

      Docs.

      【讨论】:

      • 只是想知道谁能投反对票。我想看看解释,谢谢。
      • 我对此进行了调查,发现您所做的转换在 Codeigniter 中有效,而在普通 PHP 中无效,最终您的答案无效。希望这就是为什么有人投反对票。
      • @Balaji.J.B 关注有问题的标签,其中明确表示 CodeIgniter。更多描述在我发布的链接中。但是,OP 最终解决了问题。
      猜你喜欢
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多