2012-05-02 19 views
0

データベースに入力された日付と現在の日付を比較しているスクリプトで助けが必要です。データベースからの日付が現在の日付を渡すと警告メッセージが表示されます。データベースからの日付が現在の日付に近いかどうかを警告します。私のコードの問題は、月が異なる場合に発生します。スクリプトは現在の日とデータベースの日付を比較するときに機能しますが、月が異なる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 

} 
+1

コードを書式設定するために少し努力してください。注: ''は廃止され、新しいプロジェクトでは使用されません。 – kapa

答えて

0

変数には strtotime($current_date) - strtotime($vrjedi_do_osobnaを格納し、それをIFと比較して現在の日付が合格かどうかを調べることができます。

+0

ありがとう、それは私の心を渡っていない...完璧な作品... –

+0

No prob!楽しむ :) – Silviu

0

strtotime機能を使用してください。その後、数字を比較することができます。

2

あなたがPHPで、あなたがちょうどあなたのクエリの一部としてMySQLから日付差を選択することができ代わりhttp://php.net/manual/en/function.date-diff.php

date_diff機能を見たことがの正または負の数を返します

SELECT *,DATEDIFF(vrjedi_do_osobna,NOW()) from albums where vrjedi_do_osobna = '$current_date' AND $id = 'userid'" 

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff日の差