我用来向数据库提交数据的表单处理时间不正确(通常比实际时间晚几个小时)。下面的输出实际上是在9:28而不是7:28完成的。如何修复此问题,使其正确处理时间?我不想用军事时间。这可能是我的网站托管服务吗?我在XAMPP上试过这个,一切都很好。如有任何帮助,我们将不胜感激。
代码:
DATE_FORMAT(posts.post_date, '%W, %M %e, %Y at %h:%i %p') AS date
输出:
Saturday, July 6, 2013 at 07:28 PM
时间将由服务器时间决定。一个简单的解决方法是在调用date()或time()函数之前手动设置时区。
我在印度加尔各答,所以我有这样的东西:
date_default_timezone_set('Asia/Kolkata');
或者另一个例子是洛杉矶-美国:
date_default_timezone_set('America/Los_Angeles');
您还可以通过以下方式查看服务器当前所在的时区:
date_default_timezone_get();
所以类似于:
$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;
因此,你的问题的简短答案是:
// Change the line below to your timezone!
date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y h:i:s a', time());
然后所有的时间都将是您刚刚设置的时区:)
正如我上面所评论的,您可以使用CCD_ 1。文档可在此处找到。
支持的时区列表可以在这里找到。您可以将默认时区作为上述方法中的参数进行传递。
如果你打开E_NOTICE,你可能会解决这个问题,因为如果你使用日期/时间函数而不设置时区,它会弹出通知。
bool date_default_timezone_set(字符串$timezone_identifier)
E.G:
<?php
date_default_timezone_set('America/Los_Angeles');
http://www.php.net/manual/en/function.date-default-timezone-set.php