php中比较两个日期的问题

php中比较两个日期的问题,php,mysql,Php,Mysql,由于某些原因,我在比较前一个日期和当前日期时遇到困难。我尝试了很多不同的方法,尝试用谷歌搜索我的答案,但没有成功 这就是我的代码 $phpdate = date("Y-m-d"); $sql = "SELECT lastDailyCollect FROM users WHERE steamid='".$_POST['steamid']."'"; $result = $conn->query($sql); if ($result->num_rows > 0) { wh

由于某些原因,我在比较前一个日期和当前日期时遇到困难。我尝试了很多不同的方法,尝试用谷歌搜索我的答案,但没有成功

这就是我的代码

$phpdate = date("Y-m-d");

$sql = "SELECT lastDailyCollect FROM users WHERE steamid='".$_POST['steamid']."'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $lastDailyCollect = $row['lastDailyCollect'];
    }
} 

if ($lastDailyCollect == $phpdate) {
//give user error message
}elseif ($lastDailyCollect != $phpdate) {
//let user know it suceeded
}else {
//comparison error
}
我想检查用户是否能够收取每日奖金。每个用户的最后一次收集日期存储在mysql数据库中,一个名为users的表中。 它总是指向比较错误


希望有人能提供帮助。

您可以通过从当前日期中减去一天并将其存储在
$forday
中,然后匹配上一天是否等于
LastDailCollect
日期来检查
LastDailCollect
日期

<?php

$date = date("Y-m-d");  //2017-05-12

$lastDailyCollect = "2017-05-11";

$yesterday = date('Y-m-d',strtotime($date . "-1 days")); //2017-05-11

if($lastDailyCollect == $yesterday) {
//give user error message
    echo 'lastDailyCollect is equal to Previous day';
}
else
{
//let user know it suceeded
echo 'lastDailyCollect is not equal to previous day';
}
?>


当您回显$LastDailCollect时,它是什么样子的?您的代码容易受到攻击。您应该使用或准备带有绑定参数的语句,如中所述。是否仍然易受攻击?对甚至可以尝试比较它,比如
if($lastDailyCollect<$phpdate){//让用户知道它成功了}或者{//give user error message}
在$\u POST['streamid']上抛出一个intval(),以实现sql注入保护。intval($\u POST['streamid'])假设ID始终为且仅为整数。如果自上次收集后已超过1天怎么办?那这就行不通了,是吗?我只想检查他们今天是否收集了,如果没有,就让他们去做。然后添加
否则如果($lastDailyCollect<$Dayed){//1天多以前他们收集了}
我在一个新文件中重新编辑了整件事,并以完全相同的方式做了每件事,结果成功了。不知道是什么造成了不同,但它起作用了-