我存储在格林尼治标准时间的MySQL数据库的一些日期。
假设客户的时区偏移量是-540;我将如何更正来自数据库的datetime
以反映这一点?是否有一个方便的功能,我可以通过日期,或者我需要相应地添加或减少。PHP添加或减少时区偏移
回答
既然你已经在格林尼治标准时间格式的数据的项目,你必须将它们转换为时间标记,使用strtotime
,这里更多的信息:http://php.net/manual/en/function.strtotime.php 一旦你有时间戳记,你可以减去偏移量(540次60秒)从它,然后将结果转换为一个新的日期字符串,使用date
,这里更多的信息:http://php.net/manual/en/function.date.php
下面是代码,可能这一个版本:
$dbValue = $row['date'];
$timestamp = strtotime($dbValue) - (540*60);
$result = date("Y-m-d H:i:s", $timestamp);
,这里有数百万次讨论。谢谢 - 我将字段更改为数据库中某种时间戳的优点和缺点。在这一点上,如果它能更好地为我服务,这是一个选择。 – Chin 2012-03-06 09:05:04
我认为我们正处于正确的轨道上。但上面的代码需要9分钟而不是9小时。 – Chin 2012-03-06 09:13:45
在我的头顶,我必须说一个con会是在整个项目中显示它们的事实,您将不得不将时间戳转换为日期字符串,但我想不出任何其他缺点。赞成,你可以很容易地按日期排序行,因为时间戳基本上是数字。你可以使相对计算更容易,就像你最初的问题一样。希望这可以帮助。 – 2012-03-06 09:14:59
也许这个片段将帮助您:
$format = 'Y-m-d';
$obj = new DateTime();
$date = date($format, strtotime($obj->format('Y-m-d H:i:s')) - $obj->format('Z'));
- 1. 如何添加或减去时间戳的时区偏移
- 2. 使用jquery增加或减少偏移量
- 3. PHP偏移量时区时间
- 4. 时区原偏移
- 5. 时区或UTC位置偏移
- 6. PHP - 奇怪的时区偏移
- 7. MongoDB中的PHP时区偏移量
- 8. 在PHP中设置时区偏移量
- 9. php:通过UTC偏移设置时区
- 10. 如何将时区偏移添加到pandas datetime?
- 11. js无法将时区偏移添加到“1900-01-01T00:00:00”?
- 12. 添加时间偏移量从GMT到Unix时间戳PHP
- 13. PHP:根据时区偏移量设置时区
- 14. PostgreSQL更新时区偏移
- 15. java.timeTimeTimeFormatter时区偏移模式
- 16. 反向时区偏移量
- 17. 找出时区偏移量
- 18. 时区偏移计算
- 19. 时区在asp.net偏移
- 20. 忽略时区偏移量
- 21. Fullcalendar - 时区偏移量
- 22. FLEX:处理时区偏移
- 23. 时区偏移问题
- 24. Ruby时区偏移问题
- 25. 获取时区偏移量
- 26. codeigniter获取时区偏移
- 27. jQuery.datepicker.formatDate和时区偏移
- 28. 包含时区偏移
- 29. Collectd时区偏移量
- 30. 时区偏移选择
使用'timestamp'的MySQL数据类型和mysql会为你做那个 – zerkms 2012-03-06 08:47:10
Ho它能做到吗?它确实不知道客户的时区。我想它会根据服务器时区来做它没有?我全是耳朵 - 谢谢。 – Chin 2012-03-06 08:48:21
你可以为每个连接设置客户端时区,并且mysql会为你做所有的偏移工作。关于SO – zerkms 2012-03-06 10:02:58