【问题标题】:Change now() function's timezone更改 now() 函数的时区
【发布时间】:2011-11-08 17:53:23
【问题描述】:

我想将我所在国家/地区的时间放入我的数据库表中的reg_date 字段中。但是now() 会占用服务器时间。如何将now() 函数时间更改为阿塞拜疆(UTC +04.00)?

【问题讨论】:

    标签: php mysql timezone


    【解决方案1】:

    NOW() 应该返回系统上设置的当前时区的时间戳。如果您无法更改系统本身的时区,您可能必须在使用 PHP/Ruby/whatever 保存时间之前对其进行操作,或者您可以选择使用UNIX_TIMESTAMP() 以UTC 格式保存时间。


    使用 PHP (5.3+),在INSERT进入数据库之前操作时区的代码可能如下所示:

    // .... some preceding stuff
    
    $date = new DateTime();
    $date->setTimezone(new DateTimeZone('Asia/Baku'));
    
    $fdate = $date->format('Y-m-d H:i:s'); // same format as NOW()
    
    $query = "INSERT INTO tbl (field, created_on) VALUES ('blah', '$fdate')";
    mysqli_query($query);
    
    // ... and so on
    

    【讨论】:

    • 如果你问的是在保存之前或之后处理时间戳,我什至不知道你在用什么语言编写代码。更改 MySQL 时区需要 SSH(root?)访问服务器本身并不是真正的代码
    • php。我想简单地将我国的当前时间放入数据库表字段中。就是这样
    • 更新了我的答案。 (在您的时区进行了一次疯狂的尝试,您可以找到完整列表here。)
    • 你为什么要打野刺?))))
    • 还有一个问题。我正在使用带有 header("Location: ../../../index.php"); 的目录结构功能。如果我将 localhost/ 放在本地网络服务器中,它将在我的本地网络服务器中运行,但在远程服务器中不起作用。如果我要输入网页的确切地址,那么它将无法在我的本地表格中使用。如何用php生成网站地址?
    猜你喜欢
    • 2012-05-30
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多