回答編集履歴

3

typo

2017/09/13 09:06

投稿

yambejp
yambejp

スコア114960

test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  str+=":";
64
64
 
65
- str+=(Math.floor((this.getTimezoneOffset()%60)+100)).toString().substr(-2);
65
+ str+=(Math.floor(-(this.getTimezoneOffset()%60)+100)).toString().substr(-2);
66
66
 
67
67
  return str;
68
68
 

2

普通な処理

2017/09/13 09:06

投稿

yambejp
yambejp

スコア114960

test CHANGED
@@ -23,3 +23,55 @@
23
23
  console.log(d.toLocaleString().replace(/\/(\d)(?!\d)/g,"/0$1").replace(/\//g,"-").replace(/\x20/g,"T").replace(/T(\d):/,"T0$1:")+"+"+d2.toLocaleString().replace(/^.+?\x20(\d{1,2}:\d+).+$/,"$1").replace(/^(.{4})$/,"0$1"));
24
24
 
25
25
  ```
26
+
27
+
28
+
29
+ # 普通な処理
30
+
31
+ ```javascript
32
+
33
+ Date.prototype.getMyString=function(){
34
+
35
+ var str="";
36
+
37
+ str+=this.getFullYear();
38
+
39
+ str+="-";
40
+
41
+ str+=(this.getMonth()+101).toString().substr(-2);
42
+
43
+ str+="-";
44
+
45
+ str+=(this.getDate()+100).toString().substr(-2);
46
+
47
+ str+="T";
48
+
49
+ str+=(this.getHours()+100).toString().substr(-2);
50
+
51
+ str+=":";
52
+
53
+ str+=(this.getMinutes()+100).toString().substr(-2);
54
+
55
+ str+=":";
56
+
57
+ str+=(this.getSeconds()+100).toString().substr(-2);
58
+
59
+ str+="+";
60
+
61
+ str+=(Math.floor(-(this.getTimezoneOffset()/60)+100)).toString().substr(-2);
62
+
63
+ str+=":";
64
+
65
+ str+=(Math.floor((this.getTimezoneOffset()%60)+100)).toString().substr(-2);
66
+
67
+ return str;
68
+
69
+ }
70
+
71
+ var d=new Date("2014-10-10T04:50:40Z");
72
+
73
+ console.log(d.getMyString());
74
+
75
+ ```
76
+
77
+

1

sample

2017/09/13 09:04

投稿

yambejp
yambejp

スコア114960

test CHANGED
@@ -1,3 +1,25 @@
1
1
  toLocaleString()でローカル時間を取得して
2
2
 
3
3
  getTimezoneOffset()で得たオフセット分を利用して表示するのが妥当です
4
+
5
+
6
+
7
+ # sample
8
+
9
+ どうしても文字列処理が入るのできたないですね
10
+
11
+ そういう意味でライブラリの利用が推奨されます
12
+
13
+ ```javascript
14
+
15
+ var str="2014-10-10T04:50:40Z";
16
+
17
+ var d=new Date(str);
18
+
19
+ var d2=new Date('1970-01-01 0:00:00');
20
+
21
+ d2.setMinutes(-d.getTimezoneOffset());
22
+
23
+ console.log(d.toLocaleString().replace(/\/(\d)(?!\d)/g,"/0$1").replace(/\//g,"-").replace(/\x20/g,"T").replace(/T(\d):/,"T0$1:")+"+"+d2.toLocaleString().replace(/^.+?\x20(\d{1,2}:\d+).+$/,"$1").replace(/^(.{4})$/,"0$1"));
24
+
25
+ ```