0

我已经设法计算出我的“拍卖”风格网站的剩余时间,但是当时间不到 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";
}

谢谢你的所有帮助

4

3 回答 3

1

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

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

应该是这样的:

if($m < '59'  && ($d =='' && $H =='')){
于 2012-06-07T19:28:28.143 回答
1

好的,在谷歌上搜索了一下之后,我尝试了 strpos() 函数来查看 time_left 字符串中是否有 ad 或 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";
}
于 2012-06-07T20:15:13.690 回答
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。

于 2012-06-07T19:28:30.047 回答