したがって、文字列から日付オブジェクトに変換する必要がある 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)
したがって、文字列から日付オブジェクトに変換する必要がある 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)
これを行うには、 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 の文字列パーサーを参照してください。
これが役立つかどうか疑問に思います:
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 は変更されず、噛み付きます。