如果您只需要在 EST 中表达现在的时间,再加上 3 天,那么您做的工作太多了。您只需要一个语句:
$date = new DateTime("3 days", new DateTimeZone('America/New_York'));
echo $date->format("Y-m-d H:i:s\n");
如果您从任意 UTC 时间戳开始,那么您需要大约 3 行代码,而不仅仅是一行:
// let us assume $inputTimestamp is the UTC time you want to play with
$date = new DateTime(null, new DateTimeZone('America/New_York'));
$date->setTimestamp($inputTimestamp);
$date->modify("3 days");
echo $date->format("Y-m-d H:i:s\n");
或者,您可以在时间戳中添加 3 天的秒数并保存一些代码,但这样可读性会降低:
$date = new DateTime(null, new DateTimeZone('America/New_York'));
$date->setTimestamp($inputTimestamp + (3*24*60*60) );
echo $date->format("Y-m-d H:i:s\n");
对于日期/时间操作,我发现 PHP相对格式文档非常有用。绝对值得回顾。