我有一个MySQL查询保存在数据库中的注释,也节省了我要救时间戳另一个时区设置,我可以做到这一点,通过下面的查询时间戳:我可以在特定时区获得时间戳吗?
INSERT INTO tahminler
(comment, comment_text, match_id, user_id, timestamp)
VALUES ('$comment','$comment_text', $id, $user_id, now())
我有一个MySQL查询保存在数据库中的注释,也节省了我要救时间戳另一个时区设置,我可以做到这一点,通过下面的查询时间戳:我可以在特定时区获得时间戳吗?
INSERT INTO tahminler
(comment, comment_text, match_id, user_id, timestamp)
VALUES ('$comment','$comment_text', $id, $user_id, now())
是。你可以在PHP上使用date_default_timezone_set()
。
<?php
echo date('Y-m-d H:i:s');// Your local server time
date_default_timezone_set('America/Los_Angeles');
echo "<br>";
echo date('Y-m-d H:i:s');// Los Angeles time
所以你now()
与date('Y-m-d H:i:s');
更换设置您所选择的时区后。
这只适用于以下情况:a)使用系统的每个人都在同一个时区或b)每个用户都有一些时区记录。 – GordonM
完全正确。对于选项b),如果已经有记录,OP可以从此提供的http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone运行switch语句。 –
你可以用这一个
//default timezone
$date = new DateTime(null);
echo 'Default timezone: '.$date->getTimestamp().'<br />'."\r\n";
//America/New_York
$date = new DateTime(null, new DateTimeZone('America/New_York'));
echo 'America/New_York: '.$date->getTimestamp().'<br />'."\r\n";
尝试拿到常规时间戳,并添加UTC偏移
//America/New_York
$date = new DateTime(null, new DateTimeZone('America/New_York'));
echo 'America/New_York: '.($date->getTimestamp() + $date->getOffset()).'<br />'."\r\n";
您可以添加时间戳列这样的改变你的表....
ALTER TABLE `table1` ADD `lastUpdated` TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
这会添加一个名为'lastUpdated'的列,其中包含当前日期/时间的默认值。当记录更新时(可以说5分钟后)时间戳会自动更新到当前时间。
MySQL时间戳和日期时间列没有时区的概念。你必须添加一个额外的列来自己存储时区数据。 – GordonM