2016-05-12 5 views
1

私は日付を計算して、次を書きます。クロムJavascriptの日付のコントラクタ¿バグ?

new Date(service.today().getTime() + (service.plazo * service.DAY_MILLISECONDS)) 

service.today = function() { 
    var now = new Date(); 
    now.setHours(0,0,0,0); 
    return now; 
}; 

service.DAY_MILLISECONDS = 60*60*24*1000; 

service.plazoは、私は私のラップトップに私のタイムゾーンを変更番号(1,2,3,4 ...)

結果

Wed May 18 2016 23:00:00 GMT-0300 (Hora est. Sudamérica Pacífico)

ある:-3 -4全て完璧

Wed May 18 2016 23:00:00 GMT-0400 (Hora est. Sudamérica Pacífico)

しかし

new Date()

Thu May 12 2016 16:19:51 GMT-0300 (Hora verano Sudamérica Pacífico)

new Date(service.today().getTime() + (service.plazo * service.DAY_MILLISECONDS))

Wed May 18 2016 23:00:00 GMT-0400 (Hora est. Sudamérica Pacífico)

new Date(service.today().getTime())

Thu May 12 2016 00:00:00 GMT-0300 (Hora verano Sudamérica Pacífico)

new Date(service.plazo * service.DAY_MILLISECONDS)

Wed Jan 07 1970 21:00:00 GMT-0300 (Hora verano Sudamérica Pacífico)

なぜ

  • 新しいDate()」
  • 新しい日付(service.today()。getTime())
  • 新しい日付(service.plazo * service.DAY_MILLISECONDS)

はGMT-です0300および

  • 新しい日付(service.today()。getTime()+(service.plazo * service.DAY_MILLISECONDS))

エラーと

クロム版GMT-0400である。50.0.2661.94 M

Chormeバージョン46.0.2490.86(64ビット)のすべてはGMT-0400である:)

IM CRAZY :(HELP !

+0

実行している**実際の**コードを投稿したコードはありますか?それが定義される前にあなたがservice.today()を呼び出しているからです。問題を示す実行可能なスニペットをここに投稿すると良いでしょう。システムのタイムゾーンオフセットを変更した場合は、別のタイムゾーン名が表示されるはずです。 – RobG

答えて

1

timeZoneOffsetは、時間の変更(標準の夏時間になるため)が発生する期間によって異なります。

あなたの国では、夏時間が14日に終了すると思います。つまり、5月14日より前の日付はGMT -0300となりますが、Hora veranoSudaméricaPacíficoと表示され、その後は-0400になりますが、Hora est。SudaméricaPacíficoとなります。

このようにして、取得した特定の日付にあなたの国で現在の時刻だった時刻を取得します。時間は日付を変更し、一般にタイムゾーン情報はOSに依存しますが、Chromeはシステム設定に基づいてそれらを判断します。

+0

私はあなたがそれを取り組んだと思います。私はOPを理解できませんでした。「GMT-0300(Hora est。SudaméricaPacífico)」は混乱していました。ありがとう、 – RobG

+0

私は自分のラップトップでは、自動timeZone構成を持っています、そして、将来、日付は別のtypeZone GMT-0400を持っています。 –