剩余时间变低时颜色不同

时间:2012-06-07 19:22:40

标签: php mysql html

我已经设法能够计算出我的“拍卖”风格网站的剩余时间,但是当我的时间不到60分钟时,我很难让time_left变量变为红色。

以下代码执行此操作,此时剩下的时间只是#333颜色并且没有变成#9f1717

$date = date('m/d/Y h:i:s', time());
$date3 = new DateTime($date);
$date4 = new DateTime($date_finished);
$interval_date = $date3->diff($date4);
//$time_left = $interval_date->d."d ". $interval_date->h."h ". $interval_date->i."m ";
$time_left = (($interval_date->d) ? $interval_date->d.'d ' : ''). (($interval_date->h) ? $interval_date->h.'h ' : ''). $interval_date->i.'m ';

$date_fini = date("d/m H:m", strtotime($date_finished));

if('m' < '59'  && ('d'=='' && 'H' =='')){
    $pro_order_colour = "#9f1717";
}
else{
    $pro_order_colour = "#333";
}

感谢所有人和任何帮助

3 个答案:

答案 0 :(得分:1)

您正在比较常数,而不是变量,因此这些都不会被评估为真:

if('m' < '59'  && ('d'=='' && 'H' =='')){

应该是这样的:

if($m < '59'  && ($d =='' && $H =='')){

答案 1 :(得分:1)

好的,在谷歌搜索了一下后,我尝试使用strpos()函数查看time_left字符串中是否有广告或h,如果没有,则表示还剩不到一个小时,所以我可以然后将其更改为红色。这是工作代码。

$date = date('m/d/Y h:i:s', time());
$date3 = new DateTime($date);
$date4 = new DateTime($date_finished);
$interval_date = $date3->diff($date4);
//$time_left = $interval_date->d."d ". $interval_date->h."h ". $interval_date->i."m ";
$time_left = (($interval_date->d) ? $interval_date->d.'d ' : ''). (($interval_date->h) ? $interval_date->h.'h ' : ''). $interval_date->i.'m ';

$date_fini = date("d/m H:m", strtotime($date_finished));
$pos = strpos($time_left, 'h');
$pos1 = strpos($time_left, 'd');
if ($pos !== false || $pos1 !== false) {
     $pro_order_colour = "#333";
} else {
     $pro_order_colour = "#9f1717";
}

答案 2 :(得分:0)

此代码不起作用,因为'm'不小于数字,因为它是一个字符:)

if('m' < '59' && ('d'=='0' && 'H' =='0')){

这样做:

$date = mktime(time());
$date_fini = mktime(time()) + 3599;
$timeleft = intval($date_fini - $date); //assuming $date is the current time
if($timeleft < 3600) //3600 seconds in an hour
{
$pro_order_colour = "#9f1717";
} else {
$pro_order_colour = "#333";
}

确保替换date_fini。