1
var dt_now = '2-22-2013';//mm-dd-yyyy, this is dynamic in actual code
            dt_now = dt_now.split("-");
            dt_now = addZero(dt_now[2])+'-'+addZero(dt_now[0])+'-'+addZero(dt_now[1]);
            dt_now = new Date(dt_now);

上記のコードを使用して、ユーザー定義のテキストを実際の日付に変換し、残りのコードで使用しています。私には問題なく動作しているようですが、別のタイムゾーン (私の時間 -12 時間) にある別のシステムでは、日付がFebruary 21st代わりに表示されます。つまり、予定日より 1 日遅れてFeb 22nd実行されています。これを修正する方法や、エラーの原因がわかりません。助言がありますか?

4

2 に答える 2

0

タイムゾーンの問題を回避するには、UTCを使用します。ライブラリに依存する必要はありません。単純なISO8601の日付文字列で十分です。日付Date.prototype.toISOStringから作成する場合はを参照してください(互換性)。

構築はと同じくらい簡単なので、日付new Date('yyyy-mm-ddT00:00Z')を作成するにはコードを少し変更するだけです。

var dt_now = '2-22-2013';//mm-dd-yyyy, this is dynamic in actual code
dt_now = dt_now.split("-");
dt_now = addZero(dt_now[2])+'-'+addZero(dt_now[0])+'-'+addZero(dt_now[1])+'T00:00Z';
dt_now = new Date(dt_now);

UTCZを示します。時間()を含めるので、によって生成される時間と一致します。T00:00toISOString

于 2013-02-19T11:39:42.450 に答える
0

getUTC*の代わりに使用する必要がある日付を出力するメソッドget*、つまりgetUTCDate(). UTC 情報を含む日付オブジェクトを生成するには、どのように JavaScript の日付を UTC に変換しますか?の 2 番目の回答を参照してください。

于 2013-02-19T11:33:33.090 に答える