27

したがって、文字列から日付オブジェクトに変換する必要がある iso 日時があります。日付をローカル ブラウザのタイムゾーンに変換しないようにするにはどうすればよいですか。

new Date('2013-07-18T17:00:00-05:00')
Thu Jul 18 2013 18:00:00 GMT-0400 (EDT)

私は手に入れたい

2013 年 7 月 18 日木曜日 17:00:00 GMT-0500 (XX)

4

5 に答える 5

2

これを行うには、 Moment.jsなどのライブラリを使用できます。

文字列 + 形式の解析 を参照してください。

http://momentjs.com/docs/#/parsing/string-format/

以下は、提供した日付を解析する必要がありますが、必要に応じて変更する必要がある場合があります。

var dateString = "2013-07-18T17:00:00-05:00";

var dateObject = moment(dateString, "YYYY-MM-DDTHH:mm:ssZ").toDate();

または、時間の秒とタイムゾーンの間にスペースがあることを除いて、指定した形式のように見える Moment の文字列パーサーを参照してください。

http://momentjs.com/docs/#/parsing/string/

于 2014-07-02T22:16:58.557 に答える
0

これが役立つかどうか疑問に思います:

function goAheadMakeMyDate(s){
  var d = new Date(s);
  // override Date.toString()
  d.toString = function(){ return ''+s; };
  return d;
}

var example = goAheadMakeMyDate("Fri 19 July 2013 12:00:00 GMT");

example.toString() // returns string actually used to construct the date
'Fri 19 July 2013 12:00:00 GMT'

example.toLocaleString()
'Fri Jul 19 2013 08:00:00 GMT-0400 (EDT)'

1*example // gives seconds since epoch
1374235200000

あなたの入力で:

example = goAheadMakeMyDate('2013-07-18T17:00:00-05:00')
{ Thu, 18 Jul 2013 22:00:00 GMT toString: [Function] }
> example.toString()
'2013-07-18T17:00:00-05:00'
> example.toLocaleString() // I live in GMT-4
'Thu Jul 18 2013 18:00:00 GMT-0400 (EDT)'
> 1*example  // convert to integer date
1374184800000

ただし、この日付を変更し始めると、toString は変更され、噛み付きます。

于 2013-07-19T17:16:43.270 に答える