【问题标题】:PHP Offset timezone timesPHP 偏移时区时间
【发布时间】:2010-12-23 06:23:48
【问题描述】:

我编写了一个 PHP 应用程序,并连接到另一个数据库来显示数据。

在数据库中,数据显示“2009-12-31 22:30:00”。他们的网站将数据显示为晚上 8:00(休息 1.5 小时)

如何在 PHP 中将 2009-12-31 22:30:00 转换为 8pm?

字段为 $row['field_cck_monday_value']

【问题讨论】:

    标签: php timezone datetimeoffset


    【解决方案1】:

    “cck”部分表示您可能正在处理 Drupal。 Drupal 具有在数据库和视图之间运行的基于用户的日期格式和时区转换。你最好的选择是参与其中。

    【讨论】:

    • 是的,它是一个 Drupal 数据库。我不知道drupal,所以这似乎太难解决了。
    【解决方案2】:

    您可以从查询中减去所需的时间,如下所示:

    SELECT DATE_SUB(field_cck_monday_value, INTERVAL 90 MINUTE) FROM tbl
    

    Or if you wish, you can set the appropriate time zone for your mysql connection or session.

    【讨论】:

    • 嗨 Sarfraz,很好的答案,但它不起作用....每次我进入澳大利亚/布里斯班,它根本不会转换它。我尝试了 SQL 和连接字符串方法,但效果不佳......我也在我的管理员 PHP 中尝试过。不 :( 有什么想法吗?
    【解决方案3】:
    $date = new DateTime(row['field_cck_monday_value']);    
    $date->sub($date, new DateInterval('P1.5h'))
    

    我不确定 DateInterval,究竟如何格式化负 1.5 小时

    【讨论】:

    • 我试过这个... $date = new DateTime($row['field_cck_monday_value']); $date->sub($date, new DateInterval('P1.5h'));并得到了这个错误。致命错误:在第 154 行(即第 2 行)的 /home/xxx/xxx/xxx/index.php 中调用未定义的方法 DateTime::sub()。
    • 你用的是什么版本的php?
    • 我猜你需要升级你的 PHP 版本才能使用 Datetime::sub() php.net/manual/en/datetime.sub.php
    猜你喜欢
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 2014-10-23
    • 2021-12-19
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 2012-08-24
    相关资源
    最近更新 更多