Key*_*oke 2 php timezone timestamp
我目前正在使用数据库中的'time()'函数存储时间.但是,它使用服务器的时区,我希望每个用户根据他们的时区(在他们的个人资料中设置)查看时间.
如何进行时间戳转换?(我的意思是从时间戳到时间戳,而不是可读时间)
正如Joonas所说,UNIX时间戳按照定义是UTC,但如果你真的需要,你可以一起破解这样的东西以模仿时区特定的时间戳:
// PHP 5.3 - OO Code
$timestamp = time();
echo 'Unix timestamp: ' . $timestamp;
$dt = DateTime::createFromFormat('U', $timestamp);
$dt->setTimeZone(new DateTimeZone('America/New_York'));
$adjusted_timestamp = $dt->format('U') + $dt->getOffset();
echo ' Timestamp adjusted for America/New_York: ' . $adjusted_timestamp;
// PHP 5.3 - Procedural Code
$timestamp = time();
echo 'Unix timestamp: ' . $timestamp;
$dt = date_create_from_format('U', $timestamp);
date_timezone_set($dt, new DateTimeZone('America/New_York'));
$adjusted_timestamp = date_format($dt, 'U') + date_offset_get($dt);
echo ' Timestamp adjusted for America/New_York: ' . $adjusted_timestamp;
Run Code Online (Sandbox Code Playgroud)