2013-10-23 84 views
2

我試圖做一個系統比較一個特定日期($date)與當前日期(date('Y/m/d')),但我需要着色這$date當他是一週的時間日期(接近到期日)。我不知道你是否能理解我,我的英語不好...PHP和MySQL - 比較日期接近的日期

謝謝你閱讀此。

+1

你能發表一些代碼嗎?你試過什麼了? – Gus

回答

1

像這樣的東西可能工作:

date_default_timezone_set('America/Los_Angeles'); 
$date = DateTime::createFromFormat('m-d-Y', '04-15-2013'); 
$maturityDate = DateTime::createFromFormat('m-d-Y', '04-20-2013'); 
$maturityDateMinus10Days = DateTime::createFromFormat('m-d-Y', '04-10-2013'); 

if ($date > $maturityDateMinus10Days 
    && $date < $maturityDate) { 
    echo 'date is within 10 days of maturity 10'; 
} 

您可以通過複製和粘貼在這裏http://writecodeonline.com/php/

參考測試。 PHP - add 1 day to date format mm-dd-yyyy

Ref。 How can I check if the current date/time is past a set date/time?

+0

我的$ date需要是來自數據庫的變量。它是否以相同的方式工作?怎麼樣? –

+0

看起來你從@Barmar得到了答案,但你可以像'$ date = DateTime :: createFromFormat('md-Y',$ dateFromDb);' – user1477388

3

做它在MySQL查詢:

SELECT maturity_date, 
     maturity_date < DATE_ADD(NOW(), INTERVAL 1 WEEK) AS near_maturity, 
     ... 

然後你的PHP代碼可以使用if ($row['near_maturity')上色的日期。

+0

對不起,我沒有找到使用它。我tryed: ' <?PHP 如果($行[ 'near_maturity'){// 代碼在這裏 } ?>' 我只是不知道如何使用它......如果我做的回聲在'near_maturity'中,他顯示'1'... –

+0

'// code here'應該是你想要做的任何事情來爲輸出着色,比如'echo'';'' – Barmar

+0

是的,我把顏色代碼,但他繪製'1'...我想他繪製正確的日期,在數據庫中的日期。我試過像這樣: '<?php if($ result ['near_maturity']){?><?php echo $ result ['near_maturity']; ?>'。他顯示'1'紅色。 –