2014-04-14 21 views
0

我想創建一個交通信號燈系統這將告訴我在文檔到達日期之前還剩多少天。 我希望它在我的html中用顏色標記。用於到期檢查的基本日期比較

  • 綠色:如果文檔有31天或更長時間纔會到期。
  • 琥珀色:30天或更短,直至到期。
  • 紅色:連續7天或更少。

我也想顯示一個文本,告訴我有多少天到期。 過期日期來自我的數據庫在保險領域

繼承人我的代碼我是新來的PHP所以努力把我的代碼放在一起,如果有人可以告訴我如何重組我的代碼,以實現即時嘗試做id很棒,謝謝。

我的代碼:

<?php 

    include 'config.php'; 
    $data = mysql_query("SELECT * FROM supplier_stats") 
    or die(mysql_error()); 

    while($info = mysql_fetch_array($data)) 
    { 
    echo "<p>Insurance Expires ! - <font color=\"red\">".$info['insurance_date'] . "</font></p>"; 

    } 

    $date_diff = 60*60*24*7; // 7 days 
    // time()+$date_diff will be a timestamp 7 days in the future 
    if ($info['insurance_date'] < time()+$date_diff) { 
    echo "less than 7 days left!"; 
    } 
+0

一個私人函數來獲得正確的CSS類將在這裏很方便。將日期傳遞給函數,並返回正確的類。 – astroanu

回答

0

我猜$info['insurance_date']格式爲YYYY-mm-dd HH:ii:ss一個時間字符串,對不對?

如果是這樣的話,您將需要通過strtotime相對於一個數值時(time()+$date_diff

+0

它目前在varchar格式,所以用戶可以手動輸入日期,如21/04/14 – user3488706

+1

Ewww ...好吧,你將不得不解決這個問題。始終以我在答案中列出的格式將日期存儲在數據庫中。這是標準的日期時間格式,對比較起來非常有用。此外,MySQL給你'TIMESTAMP'和'DATETIME'列的原因,請使用它們! –

+0

@ user3488706這是在數據庫中使用的非常糟糕的做法。您希望以某種特定格式存儲日期,否則在查詢期間不能在比較中使用它。 –

1

在你while循環之前運行它,你遍歷在supplier_stats表中的所有條目。 對於每次迭代,您輸出"<p>Insurance Expires ! ...。 你可能不想這樣做。 編輯您的查詢以僅選擇將在您的範圍內過期的條目。

例子:

SELECT * FROM supplier_stats WHERE insurance_date >= yourDateToCompareTo 

取決於你是如何設置數據庫,insurance_date可能是「MySQL的類型DATE或字符串或偶數。根據這一點,您必須讓Comparsion檢查日期是否接近過期範圍。

你的循環(}關閉),你仍然使用$infoif ($info['insurance_date']將只使用您的表的最後一個條目後。

然而,這是一個非常非常基本的問題,我建議您閱讀一些非常基本的初學者教程,可以使用internet search engine輕鬆找到這些教程。