回答編集履歴

3

別バージョンを追加

2020/07/10 05:15

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -39,3 +39,49 @@
39
39
  }
40
40
 
41
41
  ```
42
+
43
+
44
+
45
+ getTime()で得られる経過ミリ秒で比較するバージョン
46
+
47
+ ```GAS
48
+
49
+ function myFunction() {
50
+
51
+ const sheet = SpreadsheetApp.getActiveSheet();
52
+
53
+ const lastRow = sheet.getLastRow();
54
+
55
+ const date = new Date();
56
+
57
+ date.setHours(0, 0, 0, 0);
58
+
59
+ const todayStart = date.getTime();
60
+
61
+ const day = date.getDate();
62
+
63
+ date.setDate(day - 1);
64
+
65
+ const yesterdayStart = date.getTime();
66
+
67
+
68
+
69
+ for(let i = 2; i <= lastRow; i++) {
70
+
71
+ var rowTime = new Date(sheet.getRange(i, 1).getValue()).getTime();
72
+
73
+ if (rowTime >= yesterdayStart && rowTime < todayStart){
74
+
75
+ console.log(sheet.getRange(i, 3).getValue());
76
+
77
+ }
78
+
79
+ }
80
+
81
+ }
82
+
83
+ ```
84
+
85
+
86
+
87
+ 実際に大きな表を処理するなら、getValue()ではなくgetValues()を使った方がいいな。

2

new Date()を削除

2020/07/10 05:15

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  for(let i = 2; i <= lastRow; i++) {
26
26
 
27
- var rowDate = Utilities.formatDate(new Date(sheet.getRange(i, 1).getValue()), 'JST', 'yyyy/MM/dd');
27
+ var rowDate = Utilities.formatDate(sheet.getRange(i, 1).getValue(), 'JST', 'yyyy/MM/dd');
28
28
 
29
29
 
30
30
 

1

varが抜けてた

2020/07/10 05:10

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  for(let i = 2; i <= lastRow; i++) {
26
26
 
27
- rowDate = Utilities.formatDate(new Date(sheet.getRange(i, 1).getValue()), 'JST', 'yyyy/MM/dd');
27
+ var rowDate = Utilities.formatDate(new Date(sheet.getRange(i, 1).getValue()), 'JST', 'yyyy/MM/dd');
28
28
 
29
29
 
30
30