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

回答編集履歴

6

修正

2015/09/14 07:00

投稿

kaputaros
kaputaros

スコア1844

answer CHANGED
@@ -27,9 +27,9 @@
27
27
 
28
28
  という形式でしたら、それぞれをDate型にすると
29
29
  ```
30
- var start = new Date(data[i]["H"]) // Tue Sep 08 2015 00:00:00 GMT+0900 (東京 (標準時))
30
+ var start = new Date(data[i]["H"]); // Tue Sep 08 2015 00:00:00 GMT+0900 (東京 (標準時))
31
- var end = new Date(data[i]["I"]) // Wed Sep 09 2015 00:00:00 GMT+0900 (東京 (標準時))
31
+ var end = new Date(data[i]["I"]); // Wed Sep 09 2015 00:00:00 GMT+0900 (東京 (標準時))
32
- var today = new Date() // Mon Sep 14 2015 15:11:06 GMT+0900 (東京 (標準時))
32
+ var today = new Date(); // Mon Sep 14 2015 15:11:06 GMT+0900 (東京 (標準時))
33
33
  ```
34
34
  となります。(出力結果はそれぞれを toString() したものです)
35
35
 

5

微調整

2015/09/14 07:00

投稿

kaputaros
kaputaros

スコア1844

answer CHANGED
@@ -27,9 +27,9 @@
27
27
 
28
28
  という形式でしたら、それぞれをDate型にすると
29
29
  ```
30
- var start = new Date( data[i]["H"] ) // Tue Sep 08 2015 00:00:00 GMT+0900 (東京 (標準時))
30
+ var start = new Date(data[i]["H"]) // Tue Sep 08 2015 00:00:00 GMT+0900 (東京 (標準時))
31
- var end = new Date( data[i]["I"] ) // Wed Sep 09 2015 00:00:00 GMT+0900 (東京 (標準時))
31
+ var end = new Date(data[i]["I"]) // Wed Sep 09 2015 00:00:00 GMT+0900 (東京 (標準時))
32
- var today = new Date() // Mon Sep 14 2015 15:11:06 GMT+0900 (東京 (標準時))
32
+ var today = new Date() // Mon Sep 14 2015 15:11:06 GMT+0900 (東京 (標準時))
33
33
  ```
34
34
  となります。(出力結果はそれぞれを toString() したものです)
35
35
 

4

微調整

2015/09/14 06:59

投稿

kaputaros
kaputaros

スコア1844

answer CHANGED
@@ -9,6 +9,7 @@
9
9
 
10
10
  ---
11
11
  <追記>
12
+
12
13
  やりたいことは、この「ページを表示した日が開始日から終了日の期間内だったらマップ上に表示したい」ということですよね?
13
14
  であれば、
14
15
  ```

3

修正

2015/09/14 06:44

投稿

kaputaros
kaputaros

スコア1844

answer CHANGED
@@ -25,10 +25,11 @@
25
25
  > "H":"09-08-15","I":"09-09-15",
26
26
 
27
27
  という形式でしたら、それぞれをDate型にすると
28
+ ```
28
29
  var start = new Date( data[i]["H"] ) // Tue Sep 08 2015 00:00:00 GMT+0900 (東京 (標準時))
29
30
  var end = new Date( data[i]["I"] ) // Wed Sep 09 2015 00:00:00 GMT+0900 (東京 (標準時))
30
- var today = new Date() // Mon Sep 14 2015 15:11:06 GMT+0900 (東京 (標準時))
31
+ var today = new Date() // Mon Sep 14 2015 15:11:06 GMT+0900 (東京 (標準時))
31
-
32
+ ```
32
33
  となります。(出力結果はそれぞれを toString() したものです)
33
34
 
34
35
  日付が特定範囲以内に含まれるかどうかを判定するには、getTime()を使用して比較します。

2

追記

2015/09/14 06:43

投稿

kaputaros
kaputaros

スコア1844

answer CHANGED
@@ -6,3 +6,44 @@
6
6
 
7
7
  ちなみに、日付の扱い方はこちら↓
8
8
  [日付と時刻の計算 (JavaScript)](https://msdn.microsoft.com/ja-jp/library/ee532932?v=vs.94.aspx)
9
+
10
+ ---
11
+ <追記>
12
+ やりたいことは、この「ページを表示した日が開始日から終了日の期間内だったらマップ上に表示したい」ということですよね?
13
+ であれば、
14
+ ```
15
+ if( 開始日 && 終了日 )
16
+ ```
17
+ ではなく、
18
+ 今日の日付をとって、
19
+ ```
20
+ if(開始日 <= 今日 && 今日 <= 終了日 )
21
+ ```
22
+ というロジックになるかと思います。
23
+
24
+ > jsonファイルの値(Excelを変換したもの)
25
+ > "H":"09-08-15","I":"09-09-15",
26
+
27
+ という形式でしたら、それぞれをDate型にすると
28
+ var start = new Date( data[i]["H"] ) // Tue Sep 08 2015 00:00:00 GMT+0900 (東京 (標準時))
29
+ var end = new Date( data[i]["I"] ) // Wed Sep 09 2015 00:00:00 GMT+0900 (東京 (標準時))
30
+ var today = new Date() // Mon Sep 14 2015 15:11:06 GMT+0900 (東京 (標準時))
31
+
32
+ となります。(出力結果はそれぞれを toString() したものです)
33
+
34
+ 日付が特定範囲以内に含まれるかどうかを判定するには、getTime()を使用して比較します。
35
+
36
+ ここで注意したいのは、JSONから作成したDateオブジェクトは 時間が "00:00:00" になっているというところです。
37
+ 開始日はこれで問題ないのですが、終了日がこのままだと9/9 00:00:00 以降は関係ないものとなってしまいます。
38
+ (9/9 12:34 とかは範囲内に入りません。)
39
+
40
+ なので、終了日に+1日して 9/10 00:00:00未満 にします。
41
+ ```
42
+ end.setDate(end.getDate() + 1); // Thu Sep 10 2015 00:00:00 GMT+0900 (東京 (標準時))
43
+ ```
44
+ あとは getTime() で比較してあげればよいです。
45
+ ```
46
+ if( start.getTime() <= today.getTime() && today.getTime() < end.getTime() ){
47
+ // グーグルマップに表示
48
+ }
49
+ ```

1

修正

2015/09/14 06:42

投稿

kaputaros
kaputaros

スコア1844

answer CHANGED
@@ -2,4 +2,7 @@
2
2
  ではないですか??
3
3
  もしくは、その前にJSONファイルに変換している部分で失敗しているか。
4
4
 
5
- どこまで確認がとれてて、どうなっているかを1つずつ確認したほうがよいかと思われます。
5
+ どこまで確認がとれてて、どうなっているかを1つずつ確認したほうがよいかと思われます。
6
+
7
+ ちなみに、日付の扱い方はこちら↓
8
+ [日付と時刻の計算 (JavaScript)](https://msdn.microsoft.com/ja-jp/library/ee532932?v=vs.94.aspx)