我有一个 PHP MySQL 查询,它将一些数据插入到 MySQL 数据库中,它包含一个时间戳。
当前INSERT
查询NOW()
用于时间戳列,并以以下格式保存在数据库中:2012-07-24 13:13:02
不幸的是,服务器不在我的时区,它被列为 America/Los_Angeles,如图所示print date_default_timezone_get();
我希望做到以下几点:
date_default_timezone_set('Europe/London');
$timefordbLondonEU = date('Y-m-d H:i:s', time());
并简单地将;保存到数据库$timefordbLondonEU
中NOW()
这是保存此类数据的好方法吗?
非常感谢,
理查德
[添加文字]
我将 MySQL 数据库中的类型更改为DateTime
并执行了以下操作:
date_default_timezone_set('Europe/London');
$timefordbLondonEU = date('Y-m-d H:i:s', time());
它正在工作,但我仍然没有得到整体概念。
Assumptions based on your comments:
- MySQL = 没有数据类型 UTC,您只需使用 INT 类型。
- Unix_TimeStamp() 会保存当前时间还是计数?UTC 格式,例如 1343247227。
- 由于 UTC 是从一个常见的 0 点开始计算的,因此您可以从中获取任何时区。假设您不想要 1970 年参考 0 点之前的日期。
我的猜测和你所说的引导是最好的方法是将时间保存为 INT(1343247227)中的 UTC,然后从那里生成你想要的任何时区。再次假设您不需要在 1970 年参考 0 点之前存储日期。
同样,为什么不在已知时区存储为日期时间 YYYY-MM-DD HH:MM:SS,然后转换为 UTC 或其他时区。这一切似乎都很混乱=(