PHP-MYSQL根据截止日期显示不同的颜色

时间:2012-07-01 13:51:53

标签: php mysql date time colors

如何根据mysql数据库数据中建立的截止日期显示不同的div背景颜色?

即。 Mysql日期:2012年10月10日

display background-color: #FF9999如果今天是从“之前”到1-10-2012
display background-color: #FF0000如果今天是从2012年1月1日到2012年10月10日之间 display background-color: #FFFFFF如果今天是从2012年10月10日到“之后”

感谢

3 个答案:

答案 0 :(得分:1)

E.g。 (另):

在样式表中定义:

.before { background-color: #FF9999; } 
.current { background-color: #FF0000; } 
.after { background-color: #FFFFFF; }

在你的php中:

$iNow = time();
$iDeadline = strtotime($sMySqlDate);
$iAfter = strtotime('+1 day', $iDeadline);
$iBefore = strtotime('-10 days', $iDeadline);
$sClass = ($iNow >= $iAfter ? 'after' : ($iNow < $iBefore ? 'before' : 'current'));
echo '<div class="' . $sClass . '">...</div>';

=== UPDATE ===

从mysql数据库中读取时间戳:

$sSql = "SELECT `closedate` FROM `table`";
$rResult = mysql_query($sSql);
if (!$rResult) {
    echo "Could not successfully run query ($sSql) from DB: " . mysql_error();
    exit;
}

$aRow = mysql_fetch_assoc($rResult);
$sMySqlDate = $aRow['closedate'];
mysql_free_result($rResult);

答案 1 :(得分:0)

从数据库中获取当前日期和时间戳的时间戳,然后进行比较。使用strtotime功能。

示例:

$date1 = strtotime('01-07-2012');
$date2 = strtotime('01-02-2009');

if($date1 > $date2) echo 'The first date was before second one.';

答案 2 :(得分:0)

您可以使用date()strtotime()的组合。在我的例子中,我假设你在某种SQL查询结果中有日期,例如$result['date'] 2012-10-10而不是10-10-2012

$date = strtotime($result['date']);
$before = strtotime('2012-01-01');
$after = strtotime('2012-12-31');

$today = strtotime(date(Y-m-d));

if($today >= $before && $today < strtotime('2012-10-01')){
    echo 'display background-color: #FF9999';
}
elseif($today >= strtotime('2012-10-01') && $today <= strtotime('2012-10-10')){
    echo 'display background-color: #FF0000';
}
elseif($today > strtotime('2012-10-10') && $today <= $after){
    echo 'display background-color: #FFFFFF';
}