回答編集履歴

3

テキスト追加

2020/04/04 20:05

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  // プラグインメソッド date を追加
44
44
 
45
- const DATE_FORMAT_1 = 'YYYY年MM月DD';
45
+ const DATE_FORMAT_1 = 'YYYY年MM月DD';
46
46
 
47
47
  const DATE_FORMAT_2 = 'YYYY/MM/DD';
48
48
 

2

テキスト追加

2020/04/04 20:05

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -4,9 +4,7 @@
4
4
 
5
5
  受け渡し用のメソッドをJQueryプラグインとして追加するという手はいかがでしょうか?
6
6
 
7
-
8
-
9
- 仕様としては、たとえばプラグインを `.date()` として
7
+ 仕様としては、たとえばプラグインを `.date()` として、以下のような動作をするものです。
10
8
 
11
9
 
12
10
 
@@ -14,7 +12,9 @@
14
12
 
15
13
  ```javascript
16
14
 
17
- $('#datepicker').date(); // => "2020/04/04" という文字列が返される
15
+ // #datepickerの値が"2020年04月04日"のとき、"2020/04/04" という文字列が返される
16
+
17
+ $('#datepicker').date();
18
18
 
19
19
  ```
20
20
 
@@ -22,13 +22,17 @@
22
22
 
23
23
  ```javascript
24
24
 
25
+ // #datepickerに"2020年04月04日" が設定される。
26
+
25
- $('#datepicker').date("2020/04/04"); // => #datepickerに"2020年04月04日" が設定される。
27
+ $('#datepicker').date("2020/04/04");
26
28
 
27
29
  ```
28
30
 
29
31
 
30
32
 
31
- とします。
33
+  
34
+
35
+  
32
36
 
33
37
  以下は実装の一例です。日付のフォーマット変換のために、 [moment](https://momentjs.com/) を使っています。
34
38
 

1

テキスト追加

2020/04/04 20:03

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  とします。
32
32
 
33
- 以下は実装の一例です。設定のほうで、与えられた文字列が日付として正しいかチェに [moment](https://momentjs.com/) を使っています。
33
+ 以下は実装の一例です。日付のフォーマト変換のため [moment](https://momentjs.com/) を使っています。
34
34
 
35
35
 
36
36
 
@@ -38,21 +38,27 @@
38
38
 
39
39
  // プラグインメソッド date を追加
40
40
 
41
+ const DATE_FORMAT_1 = 'YYYY年MM月DD';
42
+
43
+ const DATE_FORMAT_2 = 'YYYY/MM/DD';
44
+
45
+
46
+
41
47
  $.fn.date = function(...args) {
42
48
 
43
49
  if (this.attr('id') !== 'datepicker') return;
44
50
 
45
51
  if (args.length === 0) {
46
52
 
47
- return this.val().replace(/[年月]/g, '/').replace('日', '');
53
+ return moment(this.val(), DATE_FORMAT_1).format(DATE_FORMAT_2);
48
54
 
49
55
  } else {
50
56
 
51
- const m = moment(args[0], 'YYYY/MM/DD');
57
+ const m = moment(args[0], DATE_FORMAT_2);
52
58
 
53
59
  if (m.isValid()) {
54
60
 
55
- this.val(m.format('YYYY年MM月DD日'));
61
+ this.val(m.format(DATE_FORMAT_1));
56
62
 
57
63
  }
58
64
 
@@ -66,7 +72,7 @@
66
72
 
67
73
 
68
74
 
69
- - **動作確認用サンプル:** [https://codepen.io/jun68ykt/pen/poJmXRN?editors=1010](https://codepen.io/jun68ykt/pen/poJmXRN?editors=1010)
75
+ - **動作確認用サンプル:** [https://codepen.io/jun68ykt/pen/zYGQgWQ?editors=1010](https://codepen.io/jun68ykt/pen/zYGQgWQ?editors=1010)
70
76
 
71
77
 
72
78