Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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/4/maven/6.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 strotime()未返回正确的时间_Php - Fatal编程技术网

Php strotime()未返回正确的时间

Php strotime()未返回正确的时间,php,Php,我无法使strotime()正常工作 首先,我的目标是: 我试着设置为每5分钟只能创建一篇文章 要做到这一点,我必须 strtotime('5 minutes')<strtotime($lastcreate) strotime('5分钟' 输出: 1392203323 1392228579 $lastcreate作为now()存储在我的数据库中 当我用这个代码调用它时。数字相差大约7小时 有人知道它为什么这样做和/或更好的方法吗?尝试将它们设置为变量: $five_mins =

我无法使strotime()正常工作

首先,我的目标是: 我试着设置为每5分钟只能创建一篇文章

要做到这一点,我必须

    strtotime('5 minutes')<strtotime($lastcreate)
strotime('5分钟'
输出:
1392203323
1392228579

$lastcreate作为now()存储在我的数据库中

当我用这个代码调用它时。数字相差大约7小时


有人知道它为什么这样做和/或更好的方法吗?

尝试将它们设置为变量:

$five_mins = strtotime('5 minutes');
$last_create_time = strtotime($lastcreate);
然后,比较、打印或存储变量

if ($five_mins < $last_create_time) { ...
如果($5分钟<$last\u create\u time){。。。

尝试将它们设置为变量:

$five_mins = strtotime('5 minutes');
$last_create_time = strtotime($lastcreate);
然后,比较、打印或存储变量

if ($five_mins < $last_create_time) { ...
如果($5分钟<$last\u create\u time){。。。

MySQL中设置的时区很可能与PHP中设置的时区不同

如果您可以将它们配置为相同的,那就太好了


我通常只使用应用程序(即PHP代码)生成时间戳。因此,不要使用MySQL
NOW()
,而是使用PHP
time()
,然后将其插入数据库。

MySQL中设置的时区很可能与PHP中设置的时区不同

如果您可以将它们配置为相同的,那就太好了


我通常只使用应用程序(即PHP代码)来生成时间戳。因此,不要使用MySQL
NOW()
,而是使用PHP
time()
,然后将其插入数据库中。

以下是您正在寻找的,设置时区以匹配PHP和MySQL的方法以及正确的比较

PHP

date\u default\u timezone\u set('America/New\u York');

MySQL查询在查询之前运行

设置时区=“美国/东部”

您的PHP比较

if(strtotime('now') >= strtotime($lastcreate . ' +5 minutes')){
    // its been more then 5 minutes since the last post
}

下面是您正在寻找的,在PHP和MySQL中设置时区以匹配的方法,以及正确的比较

PHP

date\u default\u timezone\u set('America/New\u York');

MySQL查询在查询之前运行

设置时区=“美国/东部”

您的PHP比较

if(strtotime('now') >= strtotime($lastcreate . ' +5 minutes')){
    // its been more then 5 minutes since the last post
}

你的php和sql server上的时区是什么?它们可能不匹配你的php和sql server上的时区是什么?它们可能不匹配你可能错过了差异是7小时。也许我误解了他的要求。我想他说的值应该是7小时,但它现在正在存储
在那里有两次-将差值设为零而不是7小时。为此,我想知道在
$lastcreate
更新值之后是否再次使用
strotime
。就像如果他将这些值颠倒过来,现在先执行
操作,它会存储
lastcreate
两次而不是
现在的
两次吗?你可能会不知道差异是7小时。也许我误解了他的要求。我在想他说的值应该是7小时,但它现在将
存储在那里两次-使差异为零而不是应该是7小时。为此,我想知道在
$last之后是否再次使用
strotime
create
更新值。比如,如果他将这些值颠倒过来,然后先执行
now
,它会存储
lastcreate
两次而不是
now
两次吗?