teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

typo

2017/09/13 09:06

投稿

yambejp
yambejp

スコア117914

answer CHANGED
@@ -30,7 +30,7 @@
30
30
  str+="+";
31
31
  str+=(Math.floor(-(this.getTimezoneOffset()/60)+100)).toString().substr(-2);
32
32
  str+=":";
33
- str+=(Math.floor((this.getTimezoneOffset()%60)+100)).toString().substr(-2);
33
+ str+=(Math.floor(-(this.getTimezoneOffset()%60)+100)).toString().substr(-2);
34
34
  return str;
35
35
  }
36
36
  var d=new Date("2014-10-10T04:50:40Z");

2

普通な処理

2017/09/13 09:06

投稿

yambejp
yambejp

スコア117914

answer CHANGED
@@ -10,4 +10,29 @@
10
10
  var d2=new Date('1970-01-01 0:00:00');
11
11
  d2.setMinutes(-d.getTimezoneOffset());
12
12
  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"));
13
- ```
13
+ ```
14
+
15
+ # 普通な処理
16
+ ```javascript
17
+ Date.prototype.getMyString=function(){
18
+ var str="";
19
+ str+=this.getFullYear();
20
+ str+="-";
21
+ str+=(this.getMonth()+101).toString().substr(-2);
22
+ str+="-";
23
+ str+=(this.getDate()+100).toString().substr(-2);
24
+ str+="T";
25
+ str+=(this.getHours()+100).toString().substr(-2);
26
+ str+=":";
27
+ str+=(this.getMinutes()+100).toString().substr(-2);
28
+ str+=":";
29
+ str+=(this.getSeconds()+100).toString().substr(-2);
30
+ str+="+";
31
+ str+=(Math.floor(-(this.getTimezoneOffset()/60)+100)).toString().substr(-2);
32
+ str+=":";
33
+ str+=(Math.floor((this.getTimezoneOffset()%60)+100)).toString().substr(-2);
34
+ return str;
35
+ }
36
+ var d=new Date("2014-10-10T04:50:40Z");
37
+ console.log(d.getMyString());
38
+ ```

1

sample

2017/09/13 09:04

投稿

yambejp
yambejp

スコア117914

answer CHANGED
@@ -1,2 +1,13 @@
1
1
  toLocaleString()でローカル時間を取得して
2
- getTimezoneOffset()で得たオフセット分を利用して表示するのが妥当です
2
+ getTimezoneOffset()で得たオフセット分を利用して表示するのが妥当です
3
+
4
+ # sample
5
+ どうしても文字列処理が入るのできたないですね
6
+ そういう意味でライブラリの利用が推奨されます
7
+ ```javascript
8
+ var str="2014-10-10T04:50:40Z";
9
+ var d=new Date(str);
10
+ var d2=new Date('1970-01-01 0:00:00');
11
+ d2.setMinutes(-d.getTimezoneOffset());
12
+ 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"));
13
+ ```