javascriptのDate時差

816 ワード

日付文字列がある場合は、下記のようになります.
var dt="2015-03-16 T 23:59"この中にTがあります.これは何の表現ですか?分かりません.GMT標準かもしれません.
日付オブジェクトに変換すると、システムに時差が自動的に加算されます.
var value = "2015-03-16T15:03:00";
var dt;
if (value instanceof Date) {
    dt = value;
} else {
    dt = new Date(value);
}
alert(dt);
結果はdtが表示されます.
Mon Mar 16 2015:03:00 GMT+0800(中国標準時間)
もう15時ではなく、自動的に8時間を加えて23時になります.(中国時間区とグリニッジの時間差は8時間)
実際に使うと、誤解を招くことがあります.例えば、1つの時間をデータベースから取り出して、フロントエンドに表示します.時間数は16より大きいかもしれません.タイムゾーンを加えると、翌日になります.
この時はタイムゾーンの要素を考慮します.データベースに保存するか、標準に変更する場合.表示するか、タイムゾーンの影響を消去します.
dt.setHours(dt.getHours() + dt.getTimezoneOffset() / 60);//      
文字列が「2015-03-16 15:03:00」の場合は時差に影響されません.
また、new Date(value)という書き方はIEがサポートしていないようです.どちらを見てもIEはモンスターのようです.