回答編集履歴
3
新たに入力文字の補正の処理を加えました。
test
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
当初の回答に修正を加えました。
|
2
|
+
|
3
|
+
--<当初の回答>--
|
1
4
|
|
2
5
|
forEachの中なので、
|
3
6
|
for(;;)ループはいらないと思います。
|
@@ -31,3 +34,58 @@
|
|
31
34
|
使っていないのなら、
|
32
35
|
time_text = start_time
|
33
36
|
の行も削除しましょう。
|
37
|
+
|
38
|
+
--<以降は回答の追加です。>--
|
39
|
+
|
40
|
+
まず、日付、時刻の全角入力やセミコロンの入力を訂正して日付オブジェクトを生成する補助関数を
|
41
|
+
myFunctionの前か後に保存します。
|
42
|
+
|
43
|
+
```javascript
|
44
|
+
//日付、時刻の文字列から日時のオブジェクトを返す
|
45
|
+
function genDate(_date) {
|
46
|
+
if (Object.prototype.toString.call(_date) != "[object Date]") {
|
47
|
+
//日付オブジェクトでない→セミコロン、全角数字を修正
|
48
|
+
_date = _date.toString().replace(/[:;;]/g, ":");
|
49
|
+
_date = _date.replace(/[0-9]/g, s => String.fromCharCode(s.charCodeAt(0) - 0xFEE0));
|
50
|
+
//'22:22'→'1989/12/30 22:22:00'
|
51
|
+
var hhmm = /^\d+:\d+$/;
|
52
|
+
if (hhmm.test(_date)) {
|
53
|
+
_date = "1899/12/30 " + _date + ":00";
|
54
|
+
}
|
55
|
+
return new Date(_date);
|
56
|
+
} else {
|
57
|
+
//日付オブジェクトならそのまま返す
|
58
|
+
return _date;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
```
|
62
|
+
|
63
|
+
そしてforEach文をこれに合わせて修正します。
|
64
|
+
|
65
|
+
```javascript
|
66
|
+
data_arrays.forEach(function (data_array) {
|
67
|
+
var cell_date = genDate(data_array[0]);//日付
|
68
|
+
if (cell_date.getFullYear() == today.getFullYear() &&
|
69
|
+
cell_date.getMonth() == today.getMonth() &&
|
70
|
+
cell_date.getDate() == today.getDate()) {
|
71
|
+
start_time = cell_date;
|
72
|
+
start_time2 = data_array[1];//なまえ
|
73
|
+
start_time3 = data_array[2];//掃除内容
|
74
|
+
start_time4 = genDate(data_array[3]);//時刻
|
75
|
+
message += Utilities.formatDate(start_time, "JST", "MM/dd") +
|
76
|
+
start_time2 + start_time3 +
|
77
|
+
Utilities.formatDate(start_time4, "JST", "HH:mm") + "\n";
|
78
|
+
num++;
|
79
|
+
// return false;//←この行は不要
|
80
|
+
}
|
81
|
+
})
|
82
|
+
```
|
83
|
+
|
84
|
+
最後に不要な行がもう一つありましたので、削除(コメントに)します。
|
85
|
+
|
86
|
+
```javascript
|
87
|
+
// var date = today.getFullYear() + '年' + (today.getMonth() + 1) + '月' + today.getDate() + '日';
|
88
|
+
```
|
89
|
+
|
90
|
+
以上で、日付、時刻に全角数字など不用意な入力があっても、ある程度は対応できるようになります。
|
91
|
+
|
2
fot → for
test
CHANGED
@@ -14,11 +14,12 @@
|
|
14
14
|
と日付、時刻は一度オブジェクトにしてから代入しましょう。
|
15
15
|
|
16
16
|
for (var i = 1; i <= 1; i++) {
|
17
|
-
の行とfo
|
17
|
+
の行とfor(;;)ループを閉じる
|
18
18
|
}
|
19
19
|
の行を削除します。
|
20
20
|
|
21
|
-
iPhoneからなので、回答が整形できてるか確認できませんが
|
21
|
+
(iPhoneからなので、回答が整形できてるか確認できませんが)
|
22
|
+
|
22
23
|
オブジェクトにすると、何かしらの日付になるので、
|
23
24
|
```javascript
|
24
25
|
if(start_time != ""){
|
1
let i → ver i
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
forEachの中なので、
|
3
3
|
for(;;)ループはいらないと思います。
|
4
4
|
|
5
|
-
そして、
|
5
|
+
そして、ver i も不要なので配列インデックスは、
|
6
6
|
そのまま0,1,2,3として、
|
7
7
|
|
8
8
|
```javascript
|