4

したがって<>、 などと時間を比較することは可能ですが、strtotimeを使用すると UNIX タイムスタンプが取得されるため、日付に関係なく時間を比較することはできません。

私がやりたいのは、次のような表現ができることです。

$reference_time = "2010-01-01 18:00:00";
print strtotime("19:00:00") > strtotime($reference_time);
print strtotime("16:00:00") > strtotime($reference_time);

しかし、2 番目の式を返したいと思いfalseます (日付を無視すると、時間が短くなるため)。これを行う最も簡単な方法は何ですか? (できれば文字列を分割せずに)

4

3 に答える 3

4

strtotimeには 2 番目のパラメーターもあります。試す:

$reference_time = "2010-01-01 18:00:00";
$absolute = strtotime($reference_time);

print strtotime("19:00:00", $absolute) > $absolute;
print strtotime("16:00:00", $absolute) > $absolute;

デモ: http://codepad.org/uG4bsxTH

于 2012-09-23T17:11:29.717 に答える
1

86400 (1 日の秒数) に関して、各 Unix タイムスタンプのモジュラスを取得できます。

http://php.net/manual/en/language.operators.arithmetic.php

于 2012-09-23T17:06:02.773 に答える
0

あなたがすることができます:

print strtotime("19:00:00") > strtotime(explode(' ',$reference_time)[1]);
print strtotime("16:00:00") > strtotime(explode(' ',$reference_time)[1]);

上記のコードを動作させるには、PHP 5.4以上が必要です。

于 2012-09-23T17:08:47.013 に答える