修复PHP

时间:2017-02-07 19:26:09

标签: php timestamp-with-timezone

UNIX时间戳与时区无关,因为从过去的精确时刻开始是几秒钟:我们不在这里讨论,但正在处理所谓的时间戳

我正在使用有错误的API:提供的时间戳不是真正的UNIX时间戳,而是来自CET时区。

例如,此时间戳1484521200

  • 真实含义是2017-01-15T23:00:00+00:00
  • 来自API POV的
  • 2017-01-16T00:00:00+00:00

所以我考虑以下代码来"转换"从CET到UTC的时间戳:

date_default_timezone_set('CET');
$timezone = new DateTimeZone('UTC');
$date = date('Y-m-d H:i:s', $timestamp_API);
$date = DateTime::createFromFormat('Y-m-d H:i:s', $date, $timezone);
$timestamp_UNIX = $date->getTimestamp();
date_default_timezone_set('UTC'); // 1484524800

但我不喜欢它,因为我弄乱了默认时区:有没有更好的方法呢?

最好的方法是修复API,但不会很快发生。

0 个答案:

没有答案