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

わかりました。Googleで少し検索した後、strpos()関数を試して、time_left文字列にadまたはhがあるかどうかを確認しました。ない場合は、残り時間が1時間未満だったので、変更できます。赤に。これが動作するコードです。

$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 に答える
1

変数ではなく定数を比較しているため、これはどれも真と評価されません。

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

おそらく次のようになります。

if($m < '59'  && ($d =='' && $H =='')){
于 2012-06-07T19:28:28.143 に答える
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 に答える