<?php date_default_timezone_set('UTC'); // 设置默认的时区
$utc = new DateTimeZone('UTC'); // UTC标准时区 $userTZ = new DateTimeZone('GMT+8'); // 假设用户设置的时区是东八区
echo '输出当前的UTC时间:'; $time = new DateTime(); echo $time->format('Y-n-j H:i:s'); echo '<br>';
echo '输出当前的用户时区时间:'; $time = new DateTime(); $time->setTimezone($userTZ); echo $time->format('Y-n-j H:i:s'); echo '<br><br>';
echo '规定数据库中始终保存UTC时间。<br>'; $timeFromDB = '2015-4-14 12:02:03'; // 假设这就是从数据库某字段中读取的时间值 echo "现在从数据库中取出一个时间记录:{$timeFromDB},然后按用户所设时区显示出来:"; $time = new DateTime($timeFromDB); $time->setTimezone($userTZ); // 转换成用户所设的时区 echo $time->format('Y-n-j H:i:s'); // 显示出来 echo '<br><br>';
echo '现在用户按自己的时区输入了一个时间,现在要把这个时间按UTC时区存入数据库。<br>'; $input = '2010-7-6 11:23:16'; echo "假设用户输入的是:$input"; $time = new DateTime($input, $userTZ); $time->setTimezone($utc); // 转换为UTC时间 $sql = "INSERT INTO ... (...) VALUES ('" . $time->format('Y-n-j H:i:s') . "');"; // 把UTC时间存入数据库中 echo "<br>那么要执行的SQL语句则是:<br>$sql<br>"; ?>
|