如何根据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日到“之后”
感谢
答案 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';
}