10

私はある日付を持っていると言う

$future_time_ending = "2012-09-21 12:12:22"

現在の時刻と現在の時刻の間の分数を計算するにはどうすればよい$future_time_endingですか?

ありがとう

4

1 に答える 1

35

1つの方法:

$minutes = (strtotime("2012-09-21 12:12:22") - time()) / 60;

strtotime日付をUnixタイムスタンプ(Unixエポックからの秒数)に変換します。現在のタイムスタンプを引くと、現在の時刻と将来の時刻の間の秒数がわかります。60で割ると、結果は数分になります。

比較している時間が将来であることが確実にわからない場合は、絶対値を使用して正の数を取得します。

$minutes = abs(strtotime("2012-09-21 12:12:22") - time()) / 60;

私の答えを完全にするために、PHPで利用できるより複雑なオブジェクト指向アプローチがあります。

$time = new DateTime("2012-09-21 12:12:22");
$diff = $time->diff(new DateTime());
$minutes = ($diff->days * 24 * 60) +
           ($diff->h * 60) + $diff->i;

これは、入力時刻がサーバー以外のタイムゾーンからのものである場合に特に役立ちます。

于 2012-09-20T20:12:54.260 に答える