我使用列类型在 MySQL 中保存了一个值,bigint
日期为 2013 年 8 月 11 日 - 晚上 11:55(美国东部标准时间)
这在值为 的列中保存为 unix 时间bigint
:1376279700
我理解这是纪元时间,1970 jan 01,01 00:00:00
以秒为单位。所以我假设如果我使用任何时区初始化 DateTime 它应该产生08/11/2013 - 11:55 PM
(以及初始化时使用的任何时区)。
但给出以下代码:
$time1 = new DateTime("@1376279700");
$time1->setTimezone("Europe/London");
echo "Created Europe/London - ".$time1->format(DateTime::RFC822);
和
$time2 = new DateTime("@1376279700");
$time2->setTimezone("America/New_York");
echo "Created America/New_York - ".$time2->format(DateTime::RFC822);
我得到这些值:
创建时间:欧洲/伦敦 - 2013 年 8 月 12 日星期一 04:55:00 +0100
和
创建时间:America/New_York - 2013 年 8 月 11 日星期日 23:55:00 -0400
Europe/London
时区自我调整,并且不知何故神奇地知道这是1376279700
使用 EST 时区创建的。
我在这里很困惑。请在这里阐明一下。我正在尝试创建一个时区感知功能,其中08/11/2013 11:55 PM
我的用户的时区使用事件的开始日期()。