1

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

即Mysql日期:10-10-2012

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

谢谢

4

3 回答 3

1

例如(未经测试):

在您的样式表中定义:

.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>';

=== 更新 ===

从 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);
于 2012-07-01T14:13:34.213 回答
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';
}
于 2012-07-01T14:14:57.193 回答
0

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

例子:

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

if($date1 > $date2) echo 'The first date was before second one.';
于 2012-07-01T14:06:43.820 回答