为什么本地时间戳等于UTC时间戳?

  • 本文关键字:时间戳 UTC php timezone utc
  • 更新时间 :
  • 英文 :


如果date()格式化本地时间/日期,gmdate()格式化GMT/UTC日期/时间,为什么是这样?

date_default_timezone_set('America/Los_Angeles');
var_dump(date('U') === gmdate('U')); // true

命令行:

$ php -r "date_default_timezone_set('America/Los_Angeles'); var_dump(date('U') === gmdate('U'));"
bool(true)

为什么不同时区的本地时间戳等于UTC时间戳?

因为时间戳是从Unix纪元(1970年1月1日00:00:00 GMT)开始的秒数。注意到格林尼治时间了吗?无论您在哪个时区,时间戳都是相对于该时间和时区的。

你真正想做的是:

$local = new DateTime();
$local->setTimeZone(new DateTimeZone('America/Los_Angeles'));
$gmt   = new DateTime();
$gmt->setTimeZone(new DateTimeZone('UTC'));
var_dump($local === $gmt);

相关内容

  • 没有找到相关文章

最新更新