2016-10-20 6 views
0

私はコーダーではないので、コード行を少し微調整して、それを行う方法を理解しようと多くの時間を費やしました。 PHPの時間形式に関するチュートリアルはたくさんありますが、私の必要性に対する答えは見つけられません。PHPの日付計算で時間出力形式を変更する

私は、アプリケーション内のコード行を持っている:

<span class="muted">Expires in <?=(now() > $l->list_expires) ? 'Closed' : timespan(now(),$l->list_expires)?></span> 

私は「list_expiresは」将来的にはUNIXタイム日付でMySQLの列である、すなわち1479350850. コードから時間を計算することを発見 Coija.com 4週間、1日、21時間、30分で終了する

私が望むのは、結果を短い方法で、 29日で有効期限が切れ、1日未満の場合は「有効期限が13時間」、または「有効期限が10分」です。もう一つの選択肢は「29日残っている」でしょう。

私は最初の部分が時間切れかどうかをチェックし、 '閉じた'と出力していますが、今すぐ閉じていると出力が '期限切れになりました。 「終了」を表示する必要がある場合、「期限切れ」を表示しないでください。

ご協力いただければ幸いです。 ありがとう

+0

は 'IF(期限切れ)' {閉鎖表示されません} –

答えて

0

申し訳ありませんが、私は 'timespan'はここではPHPコマンドではなく、スクリプト内の関数であることを発見しました。今、私はその結果を見るために尻を演奏し始めています。

ご理解いただきありがとうございます。ここ

0

は、サンプルタイムスパンの関数である:

function timespan ($current_time, $list_expires) { 
    /** The formatted time span */ 
    $formatted_timespan = ""; 
    /** The difference between the current time and list expires */ 
    $time_difference = ($current_time - $list_expires); 
    /** If the time difference is greater than 1 day */ 
    if ($time_difference > (3600*24)) { 
     /** The number of days */ 
     $day_count   = floor($time_difference/(3600*24)); 
     $formatted_timespan = "Expires in " . $day_count . " days"; 
    } 
    /** If the time difference is less than 1 day but larger than 1 hour */ 
    else ($time_difference < (3600*24) && $time_difference > (3600)) { 
     /** The number of hours */ 
     $hour_count   = floor($time_difference/(3600)); 
     $formatted_timespan = "Expires in " . $hour_count . " hours"; 
    } 
    /** If the time difference is less than 1 hour */ 
    else ($time_difference < (3600)) { 
     /** The number of minutes */ 
     $minute_count  = floor($time_difference/(60)); 
     $formatted_timespan = "Expires in " . $minute_count . " minutes"; 
    } 
    return $formatted_timespan; 
} 
関連する問題