在mysql中以整数格式保存时间,但保存在不同的时区
这是使用
的代码$model->created_at = time();
这以整数格式设置时间,例如:1483881886
问题在于,当我将此时间重新转换为小时分钟和秒时,它指向不同的时区
我也试过
date_default_timezone_set('Africa/Nairobi');
then
$model->created_at = time(); //the timezone is not set
如何在unix time()函数中配置时区
答案 0 :(得分:2)
time()返回始终指向GMT http://php.net/manual/en/function.time.php
但是,在使用unix时间戳GMT获得$ time后,您可以设置所需的时区。
<?php
// If in php.ini default timezone is not set
date_default_timezone_set('Africa/Nairobi');
// Time in Unix timestamp GMT
$t = time();
$dt = DateTime::createFromFormat('U', $t);
// From Unix time GMT to Africa/Nairobi
$dt->setTimezone(new DateTimeZone('Africa/Nairobi'));
echo 'Time GMT to Africa/Nairobi: '.$dt->format('Y-m-d H:i:s');
// From Unix time GMT to Europe/Rome
$dt->setTimezone(new DateTimeZone('Europe/Rome'));
echo 'Time GMT to Europe/Rome: '.$dt->format('Y-m-d H:i:s');
?>