2

我试图将今天的日期与我将从其他地方获得的 $Time 变量结合起来,将今天和时间结合起来,然后将它们转换为纪元。

这就是我所拥有的:

$Time='16:26:00';
$now = new DateTime(null, new DateTimeZone('EST'));
$today=$now->format('Y-m-d');
$today= $today . ' '. $Time;
$today=new DateTime($today, new DateTimeZone('EST'));
$today=date_format($today, 'U');
$today=$today*1000;

当我回应今天时,我得到的时间戳比我早 4 小时,有什么想法我可能会在这里遗漏吗?

4

1 回答 1

2

Unix 时间始终以 UTC 计算(请参阅定义),因此看起来date_format($today, 'U')正在将时区调整回 UTC。

如果要使用时区修改 unix 时间戳,可以使用getOffset从 UTC 获取时区偏移量。该值以秒为单位,因此您可以将其添加到您的 unix 时间戳中。

请注意,结果将不再是 unix 时间戳。

如果您只需要处理 EST,您只需减去18000秒数(或14400EDT 秒数)。

于 2013-06-12T20:38:29.077 回答