2

これは私の前の質問のフォローアップです。現在の時刻を取得するための私のソリューションでは、オフセットを加算/減算する必要があります:

var createDate:Date = new Date();
var offset:Number = createDate.getTimezoneOffset() * 60 * 1000; 
createDate.time = parseInt("1343174921") * 1000 - offset; // subtracting offset

正確な時間を取得するには、オフセットを差し引く必要がありました (純粋な推測)。オフセットを減算または加算する方法を知るにはどうすればよいですか? getTimezoneOffsetのドキュメントには次のように記載されています。

この値は、UTC と等しくなるようにコンピューターのローカル時間に追加する必要がある分数です。コンピュータの時刻が UTC より後に設定されている場合、値は負になります。

オフセットを加算または減算する必要があるかどうかを知るために、コンピューターの時刻が UTC よりも遅く/早く設定されているかどうかを簡単に判断する方法はありますか?

更新7/25/2012 at 8pmデータベースを確認し、作成されたエントリを保存しています(日付を保存するためにUTC_TIMESTAMP()1343282417を使用しています)。Unixタイムスタンプコンバーターにプラグインすると、. だから、なぜMySqlのUTC_TIMESTAMP(現在のUTCの日付と時刻を返すと思われる)が私に別の日付を与えるのか混乱しています。私はローカルで作業しており、MySQL db、php、および Flash コードの両方が単一のマシン上にあります。Thu, 26 Jul 2012 06:00:17 GMT

4

1 に答える 1

0

あなたの質問はほとんどあなたの答えですよね?

この値は、UTCと等しくなるようにコンピューターの現地時間に追加する必要がある分数です。コンピューターの時刻がUTCより遅く設定されている場合、値は負になります。

getTimezoneOffsetUTC日付を取得するには、常にローカル日付に追加する必要があることを意味します

それで、

var now:Date=new Date();

var utcOffset=now.getTimezoneOffset() * 60 * 1000;

var utcNow:Date=new Date(now.valueOf() + utcOffset);

これで、UTC時間がありutcNowます。

注: utcNowこれは、UTC時間の誤った表現です(ユーザーのタイムゾーンでの現在のUTC時間です。つまりtoString()、ユーザーの元のタイムゾーンが追加されます。UNIXタイムスタンプを取得するには、次を使用します。utcNow.valueOf()

組み込みのAPI関数、、、、、、があり、getUTCDateこれらgetUTCFullYearの値のみを取得するために元の( )Dateオブジェクトで呼び出すことができます。getUTCHoursgetUTCMinutesgetUTCMillisecondsgetUTCMonthgetUTCSecondsnow

于 2012-07-25T17:18:10.837 に答える