我无法让strtotime()正常工作。
对于初学者来说,这是我的目标: 我正在设置它,你每5分钟只能创建一篇文章。
要做到这一点,我有
strtotime('5 minutes')<strtotime($lastcreate)
此代码^^在我的文件中。
<?php
echo '<ul><li>' . strtotime($lastcreate) . '</li>';
echo '<li>' . strtotime("now") . '</li></ul>'; ?>
输出:
1392203323
1392228579
$ lastcreate以now()
的形式存储在我的数据库中当我使用此代码来调用它时。数字相差7个小时。
有人知道为什么会这样做和/或更好的方法来做这件事吗?
答案 0 :(得分:2)
以下是您正在寻找的方法,以及在PHP和MySQL中设置时区以及正确比较的方法。
PHP
date_default_timezone_set('America/New_York');
MySQL Query在查询之前运行
SET time_zone = 'US/Eastern'
您的PHP比较
if(strtotime('now') >= strtotime($lastcreate . ' +5 minutes')){
// its been more then 5 minutes since the last post
}
答案 1 :(得分:1)
尝试将它们设置为变量:
$five_mins = strtotime('5 minutes');
$last_create_time = strtotime($lastcreate);
然后,比较,打印或存储变量。
if ($five_mins < $last_create_time) { ...
答案 2 :(得分:1)
很可能MySQL中设置的时区与PHP中的时区不同。
如果您可以将它们配置为相同,那就太好了。
我一直只是使用应用程序(即PHP代码)来生成时间戳。因此,不要使用MySQL NOW()
,而是使用PHP time()
,然后将其插入数据库。