回答編集履歴
1
修正
answer
CHANGED
@@ -3,15 +3,14 @@
|
|
3
3
|
|
4
4
|
DateTimeクラスはオブジェクトです。
|
5
5
|
newでインスタンスを生成していますよね。
|
6
|
-
オブジェクトなので下記のような四則演算では使えません
|
6
|
+
四則演算は数値のためのものであり、オブジェクトなので下記のような四則演算では使えません
|
7
|
-
四則演算は数値のためのものです。
|
8
7
|
|
9
8
|
```php
|
10
9
|
if(($dt1 - $dt2) > 60 * 10){
|
11
10
|
```
|
12
11
|
|
13
12
|
DateTimeオブジェクトには様々な機能が備わっています。
|
14
|
-
例えば2つの差が欲しいときは [diff](http://php.net/manual/ja/datetime.diff.php) を使え
|
13
|
+
例えば2つの差が欲しいときは [diff](http://php.net/manual/ja/datetime.diff.php) を使えます。
|
15
14
|
ただ、これだけだと返ってくるのは「ふたつの日付の差をあらわす DateInterval オブジェクト」です。
|
16
15
|
|
17
16
|
単なる比較なら、上記diffのマニュアルにあるように比較演算子が使えます。
|
@@ -19,6 +18,10 @@
|
|
19
18
|
この辺りで「比較のやり方が効率的ではない」という風に気づいてもらえれば嬉しいですが・・・。
|
20
19
|
|
21
20
|
-----
|
22
|
-
60 * 10 は600秒
|
21
|
+
60 * 10 は600秒
|
22
|
+
2つの日付を比較した上で600秒以上の差があったら、このif文は成立します。
|
23
|
+
ということは
|
23
|
-
|
24
|
+
**比較対象に600秒をいい感じに含ませれば引き算なんかしなくても比較演算子だけで済む**
|
25
|
+
ということになります。
|
26
|
+
|
24
27
|
あとは考えてみてください。
|