我已经设法能够计算出我的“拍卖”风格网站的剩余时间,但是当我的时间不到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";
}
感谢所有人和任何帮助
答案 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。