为什么从“今天”一词创建的 DateTime 和代表“今天”的时间戳不相同?
$zone = 'US/Eastern';
$str = 'today';
$dt_zone = new DateTimeZone($zone);
$myDateTime = new DateTime($str, $dt_zone);
$my_stamp = $myDateTime->getTimestamp();
echo "from $my_stamp {$zone}:".$myDateTime->format('d-m-Y H:i:s') . "<br>";
我们得到了结果:来自 1383886800 美国/东部:08-11-2013 00:00:00
现在让我们创建相同的代码,但从收到的时间戳生成 DateTime:
$zone = 'US/Eastern';
$str = '@1383886800';
$dt_zone = new DateTimeZone($zone);
$myDateTime = new DateTime($str, $dt_zone);
$my_stamp = $myDateTime->getTimestamp();
echo "from $my_stamp {$zone}:".$myDateTime->format('d-m-Y H:i:s') . "<br>";
我们得到了不同的结果,但时间戳相同:我们得到了结果:从 1383886800 US/Eastern:08-11-2013 05:00:00
可能存在从时间戳创建日期时间对象的另一种方式?我稍后可以实现 $myDateTime->modify('2 pm'); 并接收修改后的时间戳(不知道如何,因为 $myDateTime->getTimestamp() 在修改前返回时间戳)