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

データベースから現在の日付のタイムスタンプと日付のタイムスタンプを取得し、それらを比較します。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 に答える
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 に答える