Yii2在保存记录之前设置时区

时间:2017-01-08 13:33:30

标签: php mysql yii2

在mysql中以整数格式保存时间,但保存在不同的时区

这是使用

的代码
$model->created_at = time();

这以整数格式设置时间,例如:1483881886

问题在于,当我将此时间重新转换为小时分钟和秒时,它指向不同的时区

我也试过

date_default_timezone_set('Africa/Nairobi');
then 
$model->created_at = time();  //the timezone is not set

如何在unix time()函数中配置时区

1 个答案:

答案 0 :(得分:2)

time()返回始终指向GMT http://php.net/manual/en/function.time.php

的unix时间戳

但是,在使用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');

?>