将当前日期与数据库中的日期进行比较

时间:2012-05-02 12:53:54

标签: php

我需要帮助我的脚本将当前日期与数据库中输入的日期进行比较,我不会做的事情是当数据库中的日期通过当前日期时获取警报消息,并警告来自数据库的日期在当前日期附近。当月份不同时,我的代码会出现问题。脚本在比较数据库日期的当前日期和日期时起作用,但是当月份不同时,例如02.05.2012和28.04.2012,脚本的行为就好像28.04.2012尚未到来,他没有考虑当月。我希望这个问题很清楚。这是迄今为止的编码。有任何想法吗?

$vrjedi_do_osobna = $row['vrjedi_do_osobna'];

$current_date = date('d.m.Y');

$query = mysql_query("SELECT * from albums where vrjedi_do_osobna = '$current_date'
                                AND $id = 'userid'");




    $ime = $row['dosjename'];
    $prezime = $row['dosje_prezime'];
    $diff = abs(strtotime($current_date) - strtotime($vrjedi_do_osobna));

    $years = floor($diff / (365*60*60*24));
    $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
if($current_date < $vrjedi_do_osobna && $days < 10 && $days > 0 && $years < 1 && $months < 1)
    {
echo"<font face='gregorian' size='2'>";
   printf("&nbsp;<img src='slike_izgled/pj_sat.png' width='20' height='30'/>&nbsp;Osobna  iskaznica radnika $ime $prezime ističe za %d dana\n", $days);
echo"</font><br>";
    }
    if ($vrjedi_do_osobna <= $current_date)
                    {                                           
    echo "                            

&nbsp;<img src='slike_izgled/usklik.gif' width='25' height='25'>&nbsp;<font face='gregorian' size='2'>Osobna iskaznica radnika $ime $prezime-a je istekla!</font>&nbsp;&nbsp;&nbsp;&nbsp;<a href='viewdosje.php?album=".$row['ideo']."'>Pregled dosjea</a><br>

    "; 
// Do something

}

3 个答案:

答案 0 :(得分:2)

您是否查看过PHP date_diff函数http://php.net/manual/en/function.date-diff.php

另外,您可以在查询http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

中选择mysql中的日期差异
SELECT *,DATEDIFF(vrjedi_do_osobna,NOW()) from albums where vrjedi_do_osobna = '$current_date' AND $id = 'userid'"

将返回正天数或负天数差异

答案 1 :(得分:0)

使用strtotime功能。然后,您可以比较数字。

答案 2 :(得分:0)

您可以存储在变量中 strtotime($current_date) - strtotime($vrjedi_do_osobna)并在IF中使用它,将其与0进行比较,以查看当前日期是否通过。