Как подсказывает @Haluk, вы можете сохранить дату как UTC datetime
.
Я дополняю его ответ для ситуаций, когда дата, которую вы хотите вставить, происходит из кода PHP, и добавляю некоторые подробности о том, как это работает:
$pdo = new PDO('mysql:host=mydbname.mysql.db;dbname=mydbname', 'myusername', 'mypassword');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$insertStmt = $pdo->prepare("insert into test (last_modified)"
." values(:last_modified)");
$insertStmt->bindParam(':last_modified', $lastModified, PDO::PARAM_STR);
$lastModified = gmdate("Y-m-d H:i:s");
$insertStmt->execute();
На самом деле datetime
в PHP не имеет ассоциированного с ним часового пояса. В PDO передается просто строка в одном из форматов, распознаваемых MySQL, представляющая дату в часовом поясе UTC. Например, если дата 2015-10-21 19:32:33 UTC+2:00
, приведенный выше код просто говорит MySQL вставить 2015-10-21 17:32:33
. gmtdate("Y-m-d H:i:s")
дает вам текущую дату в таком формате. В любом случае все, что вам нужно сделать, это построить строку, представляющую дату, которую вы хотите вставить в UTC время.
Затем, когда вы читаете дату, вы должны сообщить PHP, что часовой пояс даты, которую вы только что получили, - это UTC. Для этого используйте код в ответе Халука.