繁体   English   中英

在PHP中将日期转换为UTC

[英]Converting date to UTC in PHP

我有这个日期来自我的本地领带区“ 2019-07-27T02:00:00”

我正在尝试将其保存在UTC时区中的数据库中,以便以后可以处理并从UTC转换为其他时区,

但是当我这样做时:

$date = new \DateTime("2019-07-27T02:00:00");

我有一个 :

DateTime @1564192800 {#519
  date: 2019-07-27 02:00:00.0 UTC (+00:00)
}

不管我在这里设置

new \DateTime("2019-07-26T06:00:00")

我仍然有一个UTC时区,所以这个例子

$date = new \DateTime("2019-07-26T06:00:00");

将给我以下结果:

DateTime @1564120800 {#519
  date: 2019-07-26 06:00:00.0 UTC (+00:00)
}

就像他认为日期(2019-07-26T06:00:00)的时区已经是UTC吗? 但是不是(?)。 因此,将其转换为UTC

$date->setTimezone(new \DateTimeZone('UTC')) 

完全没有影响。

任何帮助将非常感激。

PHP可能认为您已经在UTC中,并且接受任何未将时区明确列出为UTC的DateTime对象。

您可以通过查看php.ini文件或使用命令echo date_default_timezone_get()来检查PHP认为您的时区。 同样,您可以通过编辑php.ini文件或使用date_default_timezone_set()来全局编辑时区。

是PHP可以使用的时区列表。

附带说明:尽管将全局时区设置为UTC并使用DateTime / DateTimeZone设置局部变量为正确的偏移量似乎是一个好主意,但是不要这样做。 它会影响日志的时间戳,并可能导致一些非常痛苦的陷阱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM