質問編集履歴

1

誤字

2016/10/20 11:56

投稿

noririn
noririn

スコア37

test CHANGED
@@ -1 +1 @@
1
- javascript : from年月日が年末の際にto年月日を自動的に翌年の1月1日にしたい
1
+ ja
test CHANGED
@@ -1,235 +1 @@
1
- 現在予約フォームを作成しており、
2
-
3
- from年月日とto年月日のプルダウンメニューを作成しております。
4
-
5
-
6
-
7
- 下記コードはfrom年月日分のみです。
8
-
9
- (引数は予約変更の際、選択していた年月日を表示させるためのものです)
10
-
11
- 現在作成しているto年月日は、from年月日と同じで、「日」に+1をして翌日を表示するようにしているだけです。
12
-
13
-
14
-
15
- 現在分からないのは、当然ではありますがfrom年月日の「日」に+1として翌日を表示させているだけなので、to年月日の「月日」が12月31日の際に、「年」が翌年になりません。
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
- ```javascript
26
-
27
- window.onload=function selectYear(inputyear,inputmonth,inputday){
28
-
29
-
30
-
31
- //今年を取得
32
-
33
- var nowD = new Date();
34
-
35
- var nowYear = nowD.getFullYear();
36
-
37
-
38
-
39
- //yearオブジェクトの取得
40
-
41
- var objY = document.getElementById("fromYear");
42
-
43
-
44
-
45
- //年を表示(今年からマイナス10年前まで)
46
-
47
- for(var i=0; i<=10 ; i++){
48
-
49
- objY.options[i] = new Option(nowYear-i.nowYear-i);
50
-
51
- }
52
-
53
-
54
-
55
- //選択された年を表示
56
-
57
- if(nowYear-i == inputyear){
58
-
59
- document.form.year.options[nowYear-i].selected = true;
60
-
61
- }
62
-
63
- selectMonth();
64
-
65
- }
66
-
67
-
68
-
69
- function selectMonth(){
70
-
71
-
72
-
73
- //現在の日付を取得
74
-
75
- var nowD = new Date();
76
-
77
-
78
-
79
- //現在の日付を取得
80
-
81
- var nowMonth = nowD.getMonth()+1;
82
-
83
-
84
-
85
- //monthオブジェクトを取得
86
-
87
- var objM = document.getElementById("fromMonth");
88
-
89
-
90
-
91
- //monthオブジェクトに月optionを追加
92
-
93
- for(var i=0; i <=11; i++){
94
-
95
- objM.options[i] = new Option(i+1,i+1);
96
-
97
-
98
-
99
- //選択した月を表示
100
-
101
- if(i == inputmonth){
102
-
103
- document.form.month.options[i].selected = true;
104
-
105
- }
106
-
107
- }
108
-
109
- selectDay();
110
-
111
- }
112
-
113
-
114
-
115
- //日の要素を作成
116
-
117
- function selectDay(){
118
-
119
-
120
-
121
- //現在日を取得
122
-
123
- var nowD = new Date();
124
-
125
- var nowDate = nowD.getDate();
126
-
127
-
128
-
129
- //年と月を取得
130
-
131
- var sYear = document.getElementById("fromYear").value;
132
-
133
- var sMonth = document.getElementById("fromMonth").value;
134
-
135
-
136
-
137
- //月の最終日:閏年用
138
-
139
- var last = 0;
140
-
141
-
142
-
143
- //閏年判定
144
-
145
- if(2 == sMonth && (sYear % 400 == 0 || (sYear % 4 == 0 && sYear % 100 != 0))){
146
-
147
- last = 29;
148
-
149
- }else{
150
-
151
- var lastday = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
152
-
153
- last = lastday[sMonth-1];
154
-
155
- }
156
-
157
-
158
-
159
- //要素の初期化
160
-
161
- var objD = document.getElementById("day");
162
-
163
- objD.length = 0;
164
-
165
-
166
-
167
- //選択した月に応じた日の要素を追加
168
-
169
- for(var i =0; i <last; i++){
170
-
171
- objD.options[i] = new Option(i+1,i+1);
172
-
173
-
174
-
175
- //選択した日を表示
176
-
177
- if(i == inputday){
178
-
179
- document.form.day.options[i].selected = true;
180
-
181
- }
182
-
183
- }
184
-
185
- }
186
-
187
- ```
188
-
189
-
190
-
191
- そこで、to年月日で日を作成する際に
192
-
193
-
194
-
195
- ```javascript
196
-
197
-
198
-
199
- if(fromMonth == 12 && fromDay == 31){
200
-
201
-
202
-
203
- //翌年を選択
204
-
205
- document.form.toYear.options[1].selected=true;
206
-
207
- //1月を選択
208
-
209
- document.form.toMonth.options[0].selected=true;
1
+ oooooooooooooooooooooooooooooooooooooooooo
210
-
211
- //1日を選択
212
-
213
- document.form.toYear.options[0].selected=true;
214
-
215
- }
216
-
217
- ```
218
-
219
-
220
-
221
- と、このようにしてみましたが、
222
-
223
- new Date();を利用してもっと要領よく年末の際はto年月日が自動的に翌年になるようにしたいと思っております。
224
-
225
-
226
-
227
- ですがどうにも思いつかず困っております。
228
-
229
-
230
-
231
- 何かアドバイスを頂けると幸いです。
232
-
233
-
234
-
235
- どうぞよろしくお願い致します。