回答編集履歴

4

終了時刻は、8:30:00 ちょうどを前日扱いにしました。

2023/03/31 01:11

投稿

YellowGreen
YellowGreen

スコア731

test CHANGED
@@ -1,4 +1,5 @@
1
1
  例えばこのような感じでしょうか?
2
+ (当初の回答に1行追加しました。)
2
3
  ```javascript
3
4
  function getEveryDays(strBegin, strEnd) {
4
5
  strBegin = '2023/03/27 08:00:00';
@@ -7,6 +8,7 @@
7
8
  let dateEnd = new Date(strEnd);
8
9
  dateBegin.setMinutes(dateBegin.getMinutes() - 30);
9
10
  dateBegin.setHours(dateBegin.getHours() - 8);
11
+ dateEnd.setMilliseconds(dateEnd.getMilliseconds() - 1);//ここを追加
10
12
  dateEnd.setMinutes(dateEnd.getMinutes() - 30);
11
13
  dateEnd.setHours(dateEnd.getHours() - 8);
12
14
  dateEnd.setDate(dateEnd.getDate() + 1);
@@ -28,4 +30,4 @@
28
30
  '2023/03/30',
29
31
  '2023/03/31',
30
32
  '2023/04/01',
31
- '2023/04/02' ]
33
+ '2023/04/02' ] ← strEndに 4/2 8:30:00を指定すると表示されない。

3

dateBeginの時刻クリアを削除しました。

2023/03/30 12:35

投稿

YellowGreen
YellowGreen

スコア731

test CHANGED
@@ -3,14 +3,13 @@
3
3
  function getEveryDays(strBegin, strEnd) {
4
4
  strBegin = '2023/03/27 08:00:00';
5
5
  strEnd = '2023/04/02 09:00:00';
6
- let dateBegin = new Date(strBegin);
6
+ const dateBegin = new Date(strBegin);
7
7
  let dateEnd = new Date(strEnd);
8
8
  dateBegin.setMinutes(dateBegin.getMinutes() - 30);
9
9
  dateBegin.setHours(dateBegin.getHours() - 8);
10
10
  dateEnd.setMinutes(dateEnd.getMinutes() - 30);
11
11
  dateEnd.setHours(dateEnd.getHours() - 8);
12
12
  dateEnd.setDate(dateEnd.getDate() + 1);
13
- dateBegin = new Date(Utilities.formatDate(dateBegin, 'JST', 'yyyy/MM/dd'));
14
13
  dateEnd = new Date(Utilities.formatDate(dateEnd, 'JST', 'yyyy/MM/dd'));
15
14
  const result = [];
16
15
  while (dateBegin < dateEnd) {

2

;のない行に付記

2023/03/30 08:21

投稿

YellowGreen
YellowGreen

スコア731

test CHANGED
@@ -9,9 +9,9 @@
9
9
  dateBegin.setHours(dateBegin.getHours() - 8);
10
10
  dateEnd.setMinutes(dateEnd.getMinutes() - 30);
11
11
  dateEnd.setHours(dateEnd.getHours() - 8);
12
- dateEnd.setDate(dateEnd.getDate() + 1)
12
+ dateEnd.setDate(dateEnd.getDate() + 1);
13
- dateBegin = new Date(Utilities.formatDate(dateBegin, 'JST', 'yyyy/MM/dd'))
13
+ dateBegin = new Date(Utilities.formatDate(dateBegin, 'JST', 'yyyy/MM/dd'));
14
- dateEnd = new Date(Utilities.formatDate(dateEnd, 'JST', 'yyyy/MM/dd'))
14
+ dateEnd = new Date(Utilities.formatDate(dateEnd, 'JST', 'yyyy/MM/dd'));
15
15
  const result = [];
16
16
  while (dateBegin < dateEnd) {
17
17
  result.push(Utilities.formatDate(dateBegin, 'JST', 'yyyy/MM/dd'));

1

日付の処理を修正しました。

2023/03/30 08:19

投稿

YellowGreen
YellowGreen

スコア731

test CHANGED
@@ -1,14 +1,17 @@
1
1
  例えばこのような感じでしょうか?
2
2
  ```javascript
3
3
  function getEveryDays(strBegin, strEnd) {
4
- strBegin = '2023/03/27 08:30:00';
4
+ strBegin = '2023/03/27 08:00:00';
5
5
  strEnd = '2023/04/02 09:00:00';
6
- const dateBegin = new Date(strBegin);
6
+ let dateBegin = new Date(strBegin);
7
- const dateEnd = new Date(strEnd);
7
+ let dateEnd = new Date(strEnd);
8
8
  dateBegin.setMinutes(dateBegin.getMinutes() - 30);
9
9
  dateBegin.setHours(dateBegin.getHours() - 8);
10
10
  dateEnd.setMinutes(dateEnd.getMinutes() - 30);
11
11
  dateEnd.setHours(dateEnd.getHours() - 8);
12
+ dateEnd.setDate(dateEnd.getDate() + 1)
13
+ dateBegin = new Date(Utilities.formatDate(dateBegin, 'JST', 'yyyy/MM/dd'))
14
+ dateEnd = new Date(Utilities.formatDate(dateEnd, 'JST', 'yyyy/MM/dd'))
12
15
  const result = [];
13
16
  while (dateBegin < dateEnd) {
14
17
  result.push(Utilities.formatDate(dateBegin, 'JST', 'yyyy/MM/dd'));
@@ -19,11 +22,11 @@
19
22
  }
20
23
  ```
21
24
  ログの内容
22
- [ '2023/03/27',
25
+ [ '2023/03/26',
26
+ '2023/03/27',
23
27
  '2023/03/28',
24
28
  '2023/03/29',
25
29
  '2023/03/30',
26
30
  '2023/03/31',
27
31
  '2023/04/01',
28
32
  '2023/04/02' ]
29
-