0
$time = Whatever i want
$future_date = new DateTime(date('r',strtotime($time)));
$time_now = time();
$now = new DateTime(date('r', $time_now));
interval = date_diff($future_date, $now);
echo $interval->format('%H:%I');

これを実行すると...出力がWITH日になりますが、表示されません。日を時間に変換するにはどうすればよいですか (たとえば、35 時間のように)。

これは、私が書いている長いスクリプトの一部です。これを行うにはさまざまな方法があることを認識しています....

編集

以下の回答を使用して、私はこれを思いつきました:

$time = '2013-10-8 11:10:00';
$future_date = new DateTime($time);
$now = new DateTime();
$interval = date_diff($future_date, $now);
$text = $interval->days * 24 + $interval->h . ':' . $interval->i; 

時間と分をこの形式 (00:00) で先頭にゼロを付けて出力しようとしています。今、私の深みから...

4

1 に答える 1

2

日付/タイムスタンプの差を時間単位で取得する方法の例:

$future = new DateTime('@1383609600');
$now = new DateTime;
$diff = $now->diff($future);
echo $diff->days * 24 + $diff->h;

更新:出力数値を先行ゼロでフォーマットしたい場合は、sprintf()orstr_pad()関数を使用できます。使用例sprintf():

echo sprintf('%02d:%02d', $diff->days * 24 + $diff->h, $diff->i);
于 2013-10-07T16:20:40.657 に答える