PHP日期与MySQL日期字段的比较

PHP日期与MySQL日期字段的比较,php,Php,我试图将当前日期与MySQL查询“expiration\u date”返回的日期字段进行比较。此字段是一个格式为YYYY-MM-DD的日期字段,我使用If-Else初始化变量,结果如下: $today = $expiry_date = date("d-M-Y", strtotime("now")); if ($row['expiry_date'] > $today) { $msg="Not Expired"; } else { $msg="Expired"; } 这似乎不

我试图将当前日期与MySQL查询“expiration\u date”返回的日期字段进行比较。此字段是一个格式为
YYYY-MM-DD
的日期字段,我使用If-Else初始化变量,结果如下:

$today = $expiry_date = date("d-M-Y", strtotime("now"));
if ($row['expiry_date'] > $today)
{
    $msg="Not Expired";
}
else
{
    $msg="Expired";
}

这似乎不起作用,我希望您能就如何解决这一问题提出建议。

您有两个选择,可以将日期格式化为相同的格式,也可以将其作为字符串进行比较

$today = $expiry_date = date("Y-m-d", strtotime("now"));
if ($row['expiry_date'] < $today)
$today=$expiration\u date=date(“Y-m-d”),strotime(“now”);
如果($row['expiration\u date']<$today)
或者,您可以将行数据转换为unix时间戳以进行比较

$today = $expiry_date = time();
if (strtotime($row['expiry_date']) < $today)
$today=$expiration\u date=time();
如果(标准时间($row['Expiration\u date'))<$today)

您有
$today=$expiration\u date=
,应该是
$today=
$expiration\u date=

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

if (strtotime($row['expiry_date']) > $strtotime($today))
{
     echo "not expired";
} else {
    echo "expired";
}

根据你自己的说法,你把d-M-Y和Y-M-d进行比较。。。日期也默认为当前时间,因此您要创建一个字符串,将其转换为时间戳,然后将其发送到默认为完全相同时间戳的函数。“似乎不起作用”=>如果您说的是正确的方式,则会有所帮助。比较strotime($str1)和strotime($str2)这应该可以做到,因为
$row
听起来像是数据库:如果可以在数据库端对其进行过滤,那么可以在数据库端(在查询中)对其进行过滤。正确使用,mysql在排序、加入、过滤方面胜过任何php应用程序。感谢您发现这一点。我已经改正了,但仍然不起作用;如果你正确地执行了你的建议,它就行了。“非常感谢。”塔夫曼,如果你需要的话,别忘了接受答案。
$today = date("Y-m-d");

if (strtotime($row['expiry_date']) > $strtotime($today))
{
     echo "not expired";
} else {
    echo "expired";
}