PHP的日期时间问题&;MySQL

PHP的日期时间问题&;MySQL,php,mysql,datetime,timestamp,Php,Mysql,Datetime,Timestamp,这应该是一个简单的问题,因为我假设我只是在做一些愚蠢的事情,但下面是: 我有一个电子邮件验证“令牌”,它作为url中的get变量通过电子邮件发送到验证页面。根据MySQL数据库中的“tokens”表检查此变量,然后根据过期日期检查当前时间 现在,我正在编写代码来注册用户并生成令牌。这一切都很好,但到期日期是错误的 使用以下代码获取到期日期: $expires=date('Y-m-dh:i:s',time()+$settings['token_exp']) 变量$setting['token\u

这应该是一个简单的问题,因为我假设我只是在做一些愚蠢的事情,但下面是:

我有一个电子邮件验证“令牌”,它作为url中的get变量通过电子邮件发送到验证页面。根据MySQL数据库中的“tokens”表检查此变量,然后根据过期日期检查当前时间

现在,我正在编写代码来注册用户并生成令牌。这一切都很好,但到期日期是错误的

使用以下代码获取到期日期:

$expires=date('Y-m-dh:i:s',time()+$settings['token_exp'])

变量
$setting['token\u exp']
被赋值为
24*3600
(以秒计的24小时)

但是,数据库中的值比到期日期提前6小时(由MySQL CURRENT_TIMESTAMP生成。MySQL的时区是正确的,因为它给出了当前时间,PHP时区似乎也不是原因,因为即使使用
24*3600*4
,结果也是完全相同的时间和日期。即使将24小时乘以1000也不会改变任何事情


如果您想在一天之后设置过期时间,请尝试

$expires = date('Y-m-d H:i:s', strtotime('+1 day'));

如果您试图在一天之后设置过期时间,请尝试

$expires = date('Y-m-d H:i:s', strtotime('+1 day'));

如果您试图在一天之后设置过期时间,请尝试

$expires = date('Y-m-d H:i:s', strtotime('+1 day'));

如果您试图在一天之后设置过期时间,请尝试

$expires = date('Y-m-d H:i:s', strtotime('+1 day'));

这里似乎很好…这里似乎很好…这里似乎很好…这里似乎很好…我尝试了这个和我能找到的所有其他东西。当我意识到ini文件没有注册正确的时区,而是用ini\u set()定义它时,我以为我已经修复了它,但日期仍然错误。我决定使用日期添加(现在(),间隔1天)在SQL中,它工作得很好。我确信这是我代码中的一些无关错误造成的,所以我接受你的答案,因为尽管有我的结果,我知道你是对的。我尝试了这个以及我能找到的所有东西。当我意识到ini文件没有注册正确的时区,而是用ini定义它时,我认为我已经修复了它_set(),但日期仍然错误。我决定使用date\u ADD(NOW(),间隔1天)在SQL中,它工作得很好。我确信这是我代码中的一些无关错误造成的,所以我接受你的答案,因为尽管有我的结果,我知道你是对的。我尝试了这个以及我能找到的所有东西。当我意识到ini文件没有注册正确的时区,而是用ini定义它时,我认为我已经修复了它_set(),但日期仍然错误。我决定使用date\u ADD(NOW(),间隔1天)在SQL中,它工作得很好。我确信这是我代码中的一些无关错误造成的,所以我接受你的答案,因为尽管有我的结果,我知道你是对的。我尝试了这个以及我能找到的所有东西。当我意识到ini文件没有注册正确的时区,而是用ini定义它时,我认为我已经修复了它_set(),但日期仍然错误。我决定在SQL中使用date_ADD(NOW(),INTERVAL 1 DAY),效果很好。我确信这是我的代码中的一些无关错误造成的,所以我会接受你的答案,因为尽管有我的结果,我知道你是对的。