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

}
4

3 に答える 3

2

PHP の date_diff 関数を見ましたか http://php.net/manual/en/function.date-diff.php

または、クエリの一部として mysql から日付の違いを選択することもできますhttp://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

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

これは、正または負の日数差を返します

于 2012-05-02T13:07:27.877 に答える
0

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

于 2012-05-02T13:03:54.637 に答える
0

変数 strtotime($current_date) - strtotime($vrjedi_do_osobna) に格納し、それを 0 と比較して IF で使用して、現在の日付が経過したかどうかを確認できます。

于 2012-05-02T13:05:29.253 に答える