如果我使用MySQL的NOW()函数获取当前时间戳,那么我可以通过php获取该字段并将该时间转换为不同的时区吗?基本上是将当前时区的当前时间转换为另一个时区吗?
DateTimeZone
类:$gmt = new DateTimeZone("GMT");
$datetimeInGMT = new DateTime($now, $gmt);
这里的位置格式为大陆/城市
,例如欧洲/伦敦
。
如果你的日期时间不是UTC时区,你可以使用setTimezone
函数:
$datetimeInGMT = new DateTime($now, new DateTimeZone("America/New_York"));
$datetimeInGMT->setTimezone(new DateTimeZone("GMT"));
DateTime
类完全支持时区。一个 DateTime
时间戳可以被设定并可在不同时区之间进行转换。而 MySQL 在 DATETIME
字段中无法存储时区信息。尽管如此,CONVERT_TZ
仍然是一种有效的方法。 - Pekka
DateTime
的)但别忘了为了让这个工作正常,你需要知道MySQL服务器当前所在的时区以便获取正确的开始日期!MySQL的时区设置可能与系统时区不同。 - PekkaSELECT @@session.time_zone;
来获取它。 - moinudindate("任何格式",strtotime($timestamp) + $theoffset * 3600)
的操作,其中$timestamp是日期,$theoffset是$timestamp时区与您要更改为的时区之间的差异(以小时为单位)。 - Phoenix