teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2018/06/05 06:47

投稿

m.ts10806
m.ts10806

スコア80888

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秒 つまり10分ですよね。
21
+ 60 * 10 は600秒
22
+ 2つの日付を比較した上で600秒以上の差があったら、このif文は成立します。
23
+ ということは
23
- ということは**比較対象に600秒をいい感じに含ませれば**引き算なんかしなくても比較演算子だけで済みます。
24
+ **比較対象に600秒をいい感じに含ませれば引き算なんかしなくても比較演算子だけで済む**
25
+ ということになります。
26
+
24
27
  あとは考えてみてください。