回答編集履歴

2

start追加

2018/03/30 08:20

投稿

x_x
x_x

スコア13749

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  let value = input.value; // "2018-W13"
14
14
 
15
- return { year: parseInt(value.substring(0, 4), 10), week: parseInt(value.substring(6), 10) };
15
+ return { year: parseInt(value.substring(0, 4), 10), week: parseInt(value.substring(6), 10), start: input.valueAsDate };
16
16
 
17
17
  }
18
18
 
@@ -40,6 +40,6 @@
40
40
 
41
41
  var d = new Date(2022, 1, 21);
42
42
 
43
- console.log(getWeekInfo(new Date(d - dif))); // {year: 2022, week: 1}
43
+ console.log(getWeekInfo(new Date(d - dif))); // {year: 2022, week: 1, start: Mon Jan 03 2022 09:00:00 GMT+0900 (東京 (標準時))}
44
44
 
45
45
  ```

1

解決方法を追記

2018/03/30 08:20

投稿

x_x
x_x

スコア13749

test CHANGED
@@ -2,14 +2,44 @@
2
2
 
3
3
  ```JavaScript
4
4
 
5
- let input = document.createElement('input');
5
+ function getWeekInfo(date) {
6
6
 
7
- input.type = 'week';
7
+ let input = document.createElement('input');
8
8
 
9
- input.valueAsDate = new Date(2018, 2, 30);
9
+ input.type = 'week';
10
10
 
11
+ input.valueAsDate = date;
12
+
11
- console.log(input.value); // "2018-W13"
13
+ let value = input.value; // "2018-W13"
14
+
15
+ return { year: parseInt(value.substring(0, 4), 10), week: parseInt(value.substring(6), 10) };
16
+
17
+ }
18
+
19
+ ```
20
+
21
+ -- 17:05 追記
22
+
23
+ 1月4日が含まれる日が1週目ということのようですので、次のようにしてみてはどうでしょうか?
24
+
25
+ ```JavaScript
26
+
27
+ // 差分を出しておく。
28
+
29
+ let a = new Date(referenceDate);
30
+
31
+ a.setMonth(0);
32
+
33
+ a.setDate(4);
34
+
35
+ let dif = referenceDate - a;
12
36
 
13
37
 
14
38
 
39
+ // 確認したい日付。
40
+
41
+ var d = new Date(2022, 1, 21);
42
+
43
+ console.log(getWeekInfo(new Date(d - dif))); // {year: 2022, week: 1}
44
+
15
45
  ```