繁体   English   中英

在PHP中将日期和时间转换为GMT,反之亦然…?

[英]Convert date and time to GMT and vice versa in PHP…?

我有一个PHP项目,当user1向另一个用户user2发送消息时,需要显示时间和日期。 当user2打开此消息时,必须根据其时区显示时间和日期。

由于两个用户都属于不同的时区,因此显示的日期和时间与USER1输入的时间相同。

例如:如果User1在其时区的2011年2月15日上午11:30发送消息,而User2打开此消息,则必须根据其时区显示日期和时间。 假设User2属于印度(GMT + 5:30),然后显示消息发送时间15-Feb-2011, 04:30 PM.

但是它显示的是2011年2月15日上午11:30,这是错误的。

您可以使用date_create和date_timezone_set。 例如:

$mydate = date_create('2014-03-27 10:00', timezone_open('Europe/London'));
date_timezone_set($mydate, timezone_open('Europe/Athens'));
echo date_format($mydate, 'Y-m-d H:i:s') . "\n";

将输出:

2014-03-27 12:00:00

您也可以在MySQL中执行此操作:

SELECT CONVERT_TZ(your_column,"Europe/London","Europe/Paris") FROM table1;

我建议您将所有时间/日期信息存储在UTC中,并在将信息呈现给用户时进行转换。 在MySQL或PHP中执行此操作取决于应用程序设计。

试试这个代码:

$tmp_date = new Zend_Date();
$tmp_date->setTimezone( $user1_timezone );
$tmp_date->set( $date , $user1_date_format );
$tmp_date->setTimezone( $user2_timezone );
$user2_date = $tmp_date->toString( $user2_date_format );

我成功地使用它来将本地时间转换为UTC。

最好的问候,SWilk

暂无
暂无

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

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