将日期与日和月比较显示错误输出

时间:2014-11-17 10:30:11

标签: php mysql

我想比较,日期是否大于当前日期。白天和月份!

如果我只与月份比较,我得到了这个输出,这是正确的:

  Chichiri:2014年11月8日   Rokno2h:14.11.2014   Sasch79_AUT:29.11.2014   桑尼:2014年12月8日   马雷克:2014年12月31日   Fuchs:2014年12月31日   hauni89:2014年12月31日   RIX1287:2014年12月31日

但是我想比较日期和月份,以便前两个出现在列表中,因为他们的生日已经过去了。但是我得到了以下输出:

  

haislpunk:29.03.2014   Vastl:2014年4月19日   Luckypunch10:2014年4月22日   DaveMetz:2014年4月25日   Ghoost:24.06.2014   RoxoriO_AUT:18.08.2014   Alchemagi:2014年8月21日   Shizophren83:29.08.2014   FatePhoenix:29.09.2014   Testaccount:21.10.2014   wernoid:23.10.2014   bAc-Maus:25.10.2014   吉尼巴尔:2014年10月25日   CrySix1992:28.10.2014   Sasch79_AUT:29.11.2014   马雷克:2014年12月31日   Fuchs:2014年12月31日   hauni89:2014年12月31日   RIX1287:2014年12月31日

这是我的日期代码(' d.m'),但不起作用。日期(' m')与月份一起使用:

    while($row = mysql_fetch_array($test_result)){
    $curr_date = date('d.m');   
    $date = $row['value'];
    $dateFormatted = date('d.m', strtotime($date));
    //echo $dateFormatted . ' *** ' . $curr_date . '<br>';
    //wenn Geburtsmonat > aktueller Monat dann anzeigen! sonst nicht!
    if($dateFormatted >= $curr_date){
        echo $row['username'] . ' : ';
        echo date('d.m.', strtotime($date)) . date('Y');
        echo '<br />'; 

    }
}

我必须从数据库转换日期,因为它在数据库中保存为文本类型。 我在这个相关的问题中解决了这个问题。 Mysql Text to Date won't work

2 个答案:

答案 0 :(得分:0)

您需要使用日期对象并使用date_create函数将字符串转换为日期格式。 以下是此案例的工作函数:

public  function cmpDates($date1, $date2)
    {
        $date1 = date_create($date1);
        $date2 = date_create($date2);

        $diff = date_diff($date1, $date2);
        return $diff;
     }

答案 1 :(得分:0)

错误的比较,应比较格式为'm.d'&#39; d.m&#39; (你比较字符串)。