У меня быстрый вопрос ... У меня есть таблица со столбцом метки времени ... Я установил часовой пояс mysql на UTC, запросив эту строку
SET time_zone = '+00: 00'
но столбец меток времени по-прежнему сохраняется с использованием текущего часового пояса моей машины ... это ошибка или что-то в этом роде? Я использую Yii php framework для хранения данных и Phpmyadmin для просмотра данных
Это полный сценарий
1) У меня есть таблица с 6 столбцами (id, post_hash, user_id, post_msg, post_time, update_time)
2) post_time и update_time являются временными метками ...
3) но update_time имеет атрибут, в котором он будет обновляться, когда в строке произошла модификация. а post_time - это простой столбец отметки времени
4) проблема, когда я вставляю данные ... post_time и update_time следуют за текущим часовым поясом моего компьютера, но я уже установил часовой пояс моего mysql и php в UTC перед выполнением SQL.
это мой код Yii
$conn = Yii::app()->db;
//Store the message to database
$sql = "INSERT INTO posts(post_hash,user_id,post_msg,post_time)
VALUES(:post_hash,:user_id,:post_msg,:post_time)";
$dbcmd = $conn->createCommand($sql);
$user_id = Yii::app()->user->user_id;
date_default_timezone_set('UTC');
$post_date = date("Y-m-d H:i:s",time());
$post_hash = "p-".Ynet_Crypt::encryptString(time().Yii::app()->user->username,"sha256");
$dbcmd->bindParam(":post_hash",$post_hash);
$dbcmd->bindParam(":user_id",$user_id);
$dbcmd->bindParam(":post_msg",$msg);
$dbcmd->bindParam(":post_time",$post_date);
$dbcmd->execute();
и это моя конфигурация yii, которая устанавливает для моего подключения mysql часовой пояс UTC
'charset' => 'utf8',
'initSQLs'=>array("SET time_zone = '+00:00'"),
),
Все, что я хочу, это дата, которую я сохранил, будет UTC