PHP DateTime()小时/分钟不同,但时间戳相同


PHP DateTime() hours/minutes different but timestamp is the same

我正在尝试获取当前纽约和伦敦日期/时间的时间戳。

date_default_timezone_set('America/New_York');
$dtNY = new DateTime();
echo 'New York';
echo date('m-d-Y H:i:s', $dtNY->getTimestamp());
echo $dtNY->getTimestamp(); 
echo 'London';
date_default_timezone_set('Europe/London');
$dtLondon = new DateTime();
echo date('m-d-Y H:i:s', $dtLondon->getTimestamp());
echo $dtLondon->getTimestamp();

上述代码的结果是

纽约2012年3月30日08:32:491333110769

伦敦2012年3月30日13:32:491333110769

为什么上面的代码给了我完全相同的时间戳但不同的日期?!?这不符合逻辑:-s

您的问题的实际答案是UNIX时间戳始终以UTC时间表示,但当您选择将该时间戳转换为本地时间时,在执行转换时会考虑所选时区。

时间戳使用UTC。这个星球上的任何地方都是一样的。但当地时间不同。即你不想和我们在同一时间吃午饭,你更喜欢在纽约吃早餐,而在爱丁堡我们正在吃午饭!