Php 更快地将UTC转换为EST并增加3天时间

Php 更快地将UTC转换为EST并增加3天时间,php,Php,我有下面的代码,它可以工作,但是否有一个“更干净”的方式,可能更少的代码 $today = new DateTime(); $utc_today = date('Y-m-d', $today->format('U')); $new_date = new DateTime($utc_today, new DateTimeZone('America/New_York')); $new_date->add(new DateInterval('P3D')); echo $new_date-&

我有下面的代码,它可以工作,但是否有一个“更干净”的方式,可能更少的代码

$today = new DateTime();
$utc_today = date('Y-m-d', $today->format('U'));
$new_date = new DateTime($utc_today, new DateTimeZone('America/New_York'));
$new_date->add(new DateInterval('P3D'));
echo $new_date->format('m-d-Y');

如果你现在只需要用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文档非常有用。这绝对值得一看。

您的输入日期是什么格式的?它只是UTC时间戳、字符串还是什么?这只是一个日期,还是也有时间成分?您希望输出数据采用什么格式?