如何在php sql中使用变量将日期和时间与当前日期和时间进行比较

q35jwt9p  于 2021-06-21  发布在  Mysql
关注(0)|答案(4)|浏览(393)

我有“用户”表

id | name | day | time |
 1 | john |  6  |  11  |

我想从“日”和“时”两个方面来比较当前的日期和时间,我是不是做错了什么?我只知道6号星期六http://php.net/manual/en/function.date.php

$today = date("w");
$time = date("H");
$query = "SELECT name, day, time FROM `user`";
$result = mysql_query($query);  
$row = mysql_fetch_assoc($result);

$a = $row['name'];
$b = $row['day'];
$c = $row['time'];

if($b == $today AND $c >= $time)
{
    echo 'success';
}
else
{
    echo "result 0";
}

但输出为“结果0”

6vl6ewon

6vl6ewon1#

可能是您的php时区配置不同。例如,尝试获取更详细的信息

echo "result 0, because $b != $today or $c < $time; my datetime is " . date('c');
qyyhg6bp

qyyhg6bp2#

我用你的数据尝试了你的php脚本,但对我来说效果很好。可能是您的问题与时区有关,因为date()返回当前时区,就像php.ini的date.timezone参数中定义的那样。例如,如果您在12:00测试程序,而utc时间低于2小时或更长时间,则测试将失败。为了避免这种情况,可以在php.ini中定义当前的tz,或者直接在php脚本上使用\u date\u default\u timezone\u set()设置时区。如果用户没有相同的tz,后者可能很有用。您可以将tz存储在user表中,并使用\u date\u default\u timezone()在脚本中正确初始化它_

6tr1vspr

6tr1vspr3#

当您插入到数据库时,请确保插入am/pm时间,以便正确比较。日期(“h a”)//晚上11点

pbgvytdp

pbgvytdp4#

只有在星期六的午夜(00:00)到11:59(am)之间运行该代码,它才会工作。 H 格式为24小时制。或者将变量添加到 echo 语句,这样你就可以像电脑一样看到东西。

相关问题