【问题标题】:Add 9 hours and 30 minutes behind my time比我的时间晚 9 小时 30 分钟
【发布时间】:2011-10-27 19:01:49
【问题描述】:

我有一个 mysql 数据库表,当用户填写 php 表单页面时,它会自动填充“日期时间”列。

$timestamp = datetime("Y-m-d H:i:s");

问题是,数据库服务器在美国,比我的时间晚了 9 小时 30 分钟。

有谁知道如何更改此设置,以便将 9 小时 30 分钟添加到日期时间?

【问题讨论】:

  • 在您的设置文件(例如 php.ini)中设置正确的时区。
  • 感谢您的超快速回复,但我希望在从数据库中检索时间时增加几个小时..
  • 我将“files”设为复数形式,因为您也可以在 DBMS 中更改它。
  • 有几个人建议为 php 和数据库设置正确的时区。这是正确的答案,因为从一个时区到另一个时区的所有翻译都将由数据库处理,您无需付出任何努力。

标签: php


【解决方案1】:

要直接回答您的问题,您可以在 select 语句中使用以下函数:

select date_add(datefield, interval 570 minute) from table

但是,如某些 cmets 所述,最好从源头纠正问题并更新 DBMS 中的时区。

【讨论】:

  • +1 用于回答问题(按要求),同时仍建议更好的方法。
【解决方案2】:

1) 在 php.ini 文件中设置正确的时区。
2) 在您的 DBMS 中设置正确的时区(MySQL timezone change? 用于 MySQL)

这不需要您添加一些奇怪的参数或在脚本中不断使用相同的功能。

【讨论】:

  • 问题是,这 9 小时不是恒定的,我想为位置更改它.. 所以请建议一种方法来为我从 db 检索的日期时间添加小时..
  • @anoop lenin :我提供的链接显示了如何更改连接的时区。例如,只需使用SET time_zone='Europe/Paris';
【解决方案3】:

【讨论】:

    【解决方案4】:

    有几种可能性。请参阅 http://www.php.net/manual/en/ref.datetime.php 以获取 DateTime-Functions 列表。 date_add 和 date_sub 是不错的起点

    【讨论】:

      【解决方案5】:

      您总是可以只使用具有时区参数的 datehttp://www.php.net/manual/en/function.date.php

      【讨论】:

        猜你喜欢
        • 2016-09-27
        • 2016-05-05
        • 1970-01-01
        • 2023-02-09
        • 1970-01-01
        • 1970-01-01
        • 2016-03-24
        • 2014-06-13
        • 2023-02-08
        相关资源
        最近更新 更多