检查今天的日期是在sql中保存的日期之前还是之后

时间:2013-12-30 17:46:42

标签: php html sql

我不明白为什么它不起作用。

存储在数据库中的日期,使用此

放到那里
    $date2=Date('d/m/y', strtotime("+90 days"));

使用此信息存储在列中     varchar(255)latin1_swedish_ci

输出:

    $get_w_date = $qr['r_e_date']; 
    print"
   <tr><th colspan=\"2\"> <b>Warranty Status</b> </th></tr>";
   if(strtotime($get_w_date) > time()) {
   echo '<tr bgcolor=\"ff00ff\"> outcome 1';
   } else {
   echo '<tr bgcolor=\"00ff00\"> outcome 2';
   }

无论数据库中的日期是否存在,它总是运行结果2 :(

2 个答案:

答案 0 :(得分:0)

如果您没有将日期存储为字符串,这会更容易。

尝试使用STR_TO_DATE()UNIX_TIMESTAMP()。你的SQL:

SELECT UNIX_TIMESTAMP(STR_TO_DATE(r_e_date, "%m/%d/%y")) as r_e_date

你的PHP:

$get_w_date = $qr['r_e_date']; 
if($get_w_date > time()) {

答案 1 :(得分:0)

以下代码用于检查保存日期是否在 之前或之后1天:

<?php
$date = date('Y-m-d');
Echo "Today : $date<br/>";

$saved = "2013-12-29";  // For output i set the date instead of $qr['r_e_date']; 
$previous_date = date('Y-m-d', strtotime($saved .' -1 day'));
Echo "Previous to saved date : $previous_date<br/>";

$next_date = date('Y-m-d', strtotime($saved .' +1 day'));
Echo "Next to saved date : $next_date<br/><br/>";

if($previous_date == $date)
{
Echo "Before";
}
else if($next_date == $date)
{
Echo "After";
}
?>

注意上述代码在数据库中的工作日期必须以Y-m-d(年 - 月 - 日)格式存储。


如果您想 删除1天限制 ,您可以使用以下代码检查之前,之后或同一日期

<?php
$date = date('Y-m-d');
Echo "Today : $date<br/>";
$todayA=explode("-",$date);

$saved = "2014-01-03";  // For output i set the date instead of $qr['r_e_date']; 
Echo "Saved : $saved<br/><br/>";
$savedA=explode("-",$saved);

if($savedA[0]==$todayA[0])
{
    if($savedA[1]==$todayA[1])
    {
        if($savedA[2]==$todayA[2])
        {
        Echo "Same Date";
        }
        else if($savedA[2]<$todayA[2])
        {
        Echo "Before";
        }
        else
        {
        Echo "After";
        }
    }
    else if($savedA[1]<$todayA[1])
    {
    Echo "Before";
    }
    else
    {
    Echo "After";
    }
}
else if($savedA[0]<$todayA[0])
{
Echo "Before";
}
else
{
Echo "After";
}
?>