Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP日期时间错误_Php_Mysql_Datetime_Date - Fatal编程技术网

PHP日期时间错误

PHP日期时间错误,php,mysql,datetime,date,Php,Mysql,Datetime,Date,我对php date()函数有问题 当我在mysql数据库中保存日期时,小时数显示比当前时间少4小时 我的php代码如下:$add_date=date(“Y-m-dh:i:s”) 它将数据库中的时间节省为 2011-08-03 07:51:26 但这是我们应该展示的 2011-08-03 13:22:26 有人能告诉我怎么修吗 谢谢您必须设置一个有效的时区-您似乎没有在php环境中为您的位置设置合适的时区 退房 它应该为您提供如何在php中设置正确时区的线索。您必须设置一个有效的时区-似乎您没

我对php date()函数有问题

当我在mysql数据库中保存日期时,小时数显示比当前时间少4小时

我的php代码如下:
$add_date=date(“Y-m-dh:i:s”)

它将数据库中的时间节省为

2011-08-03 07:51:26

但这是我们应该展示的

2011-08-03 13:22:26

有人能告诉我怎么修吗


谢谢

您必须设置一个有效的时区-您似乎没有在php环境中为您的位置设置合适的时区

退房


它应该为您提供如何在php中设置正确时区的线索。

您必须设置一个有效的时区-似乎您没有在php环境中为您的位置设置合适的时区

退房


它应该为您提供如何在php中设置正确时区的线索。

使MySQL服务器和web服务器的时区设置相同。

使MySQL服务器和web服务器的时区设置相同。

@Mujahid如果打印的时间和保存的时间相同,则可能意味着您的服务器不在php中和你一样的时区。话虽如此,您必须在文件顶部手动设置PHP脚本的默认时区,或者通过显式定义时区来获取日期时间。代码如下:

$dateTime = new DateTime("now", new DateTimeZone('America/Los_Angeles'));
$add_date = $dateTime->format("Y-m-d H:i:s");
echo $add_date;
下面是PHP支持的时区列表,只需找到您的时区并用它替换美国/洛杉矶

这里有一个关于PHP DateTime和DateTimeZone的好教程


希望这有帮助。祝你好运。

@Mujahid如果打印的时间和保存的时间相同,可能意味着你的服务器与你不在同一时区。话虽如此,您必须在文件顶部手动设置PHP脚本的默认时区,或者通过显式定义时区来获取日期时间。代码如下:

$dateTime = new DateTime("now", new DateTimeZone('America/Los_Angeles'));
$add_date = $dateTime->format("Y-m-d H:i:s");
echo $add_date;
下面是PHP支持的时区列表,只需找到您的时区并用它替换美国/洛杉矶

这里有一个关于PHP DateTime和DateTimeZone的好教程


希望这有帮助。祝你好运。

这将添加托管服务器时间,而不是本地时间
$add_date=日期(“Y-m-d H:i:s”)

使用strotime()添加小时和分钟


$newdate=date(“Y-m-dh:i:s”,标准时间(“+5小时30分钟”。$row['db_date'])

这将添加托管服务器时间而不是本地时间
$add_date=日期(“Y-m-d H:i:s”)

使用strotime()添加小时和分钟


$newdate=date(“Y-m-dh:i:s”,标准时间(“+5小时30分钟”。$row['db_date'])

当我运行此代码时,我得到:2011-08-03 08:24:27当我运行它时,我得到2011-08-03 04:33:02。有趣的是,时间总是在变化,在不同的时区不一样。当我运行此代码时,我得到:2011-08-03 08:24:27当我运行它时,我得到2011-08-03 04:33:02。有趣的是,时间在不断变化,在不同的时区不一样。你从哪里知道时间没有存储在varchar字段中?你怎么知道时间没有存储在BLOB中?你的问题没有建设性。对不起,我不想和你吵架。我想澄清与mysql的关系。我首先想到OP将PHP中的时间字符串添加到数据库中。但是我们刚刚发现了标签“datetime”。所以你的答案可能是正确的。你从哪里知道时间没有存储在varchar字段中?你怎么知道时间没有存储在BLOB中?你的问题没有建设性。对不起,我不想和你吵架。我想澄清与mysql的关系。我首先想到OP将PHP中的时间字符串添加到数据库中。但是我们刚刚发现了标签“datetime”。所以你的答案可能是正确的。@Mujahid这可能就是问题所在。在将日期值存储到MySql数据库之前,您应该尝试回显日期值,如果它们匹配,那么这肯定是时区问题。@Saad Imran:当我打印时间时,它只会给出相同的答案:(@Mujahid这可能就是问题所在。在将日期值存储到MySql数据库之前,您应该尝试回显日期值,如果它们匹配,那么这肯定是时区问题。@Saad Imran:当我打印时间时,它只会给我相同的答案:(