3

次のように、日付をUTC日付に変換するためにJavascript関数を使用しました。

Date.prototype.convertToUTC = function () {
var month = this.getMonth();
var day = this.getDate();
var year = this.getFullYear();
return new Date(Date.UTC(year, month, day));
}

この関数が適用される日付がすでにUTCである場合、問題が発生します。ユーザーがUTC/現地の日付にこのメソッドを呼び出すかどうかわからないため、UTCでない場合にのみ変換が行われるようにします。助けてください。

4

2 に答える 2

1

すべての日付の中心にはUTC時間値があります。ホストで作成された日付オブジェクトには、システム設定に基づいて読み取り専用のタイムゾーンオフセットが与えられ、 getDategetHoursなどを使用して読み取られた値はそのオフセットに基づいています。

エポックからUTCミリ秒が必要な場合は、getTime()メソッドを使用してください。または、独自のフォーマットされた文字列を作成するためのUTCメソッド、getUTCDaygetUTCHoursなどがあります。

最後に、 UTCのISO形式の日付文字列を返すtoISOStringがありますが、それほど古くないブラウザではサポートが不足している可能性があります。

いくつかの例

2012-11-06T15:45:01Zのローカル日付オブジェクトを作成するには:

var date = new Date(Date.UTC(2012, 10, 6, 15, 45, 1));

その(または任意の)日付オブジェクトからISO日付文字列を取得するには:

var isoString = date.toISOString();

UTC時間値をミリ秒単位で取得するには(1970-01-01T00:00:00Zからのミリ秒):

var timeValue = date.getTime();

その時刻の値をローカルの日付オブジェクトに戻すには、次のようにします。

var date = new Date(timeValue);
于 2012-11-06T09:32:23.567 に答える
1

JavaScriptDateオブジェクトにはメソッドがありgetTimezoneOffset()ます。あなたはそれを使うことができます。または、次のgetUTC*方法を使用します。

 var d = new Date();
 var utcyear = d.getUTCFullYear();
于 2012-11-06T09:33:41.483 に答える