3

Web アプリでDate.jsを使用 しています。「Mon Oct 8 00:00:00 UTC-0300 2012」から 1 日を減算すると、「oct 7」ではなく「oct 6」が返されます。

これが私のコードです:

var startTime = new Date(2012, 9, 8);
var beforeStare = startTime.clone().addDays(-1);

ここに画像の説明を入力

なぜこれが起こっているのですか?これを修正するには?

また、私はこれを試しましnew Date(2012,9,7);

10 月 6 日 23:00:00 UTC-0300 2012

:私は Asuncion(UTC-04:00)TimeZoneを使用しています

JSFドラー

4

2 に答える 2

0

日付を utc に変換して計算を行い、ユーザーに表示するときにローカル タイムゾーンに変換します。このようにして、作業しているすべての日付が同じ標準を持つようになります。

// Creating the date "Oct 7 2012"
var date = new Date(2012, 9, 7);

//Convert to UTC in a safe way
var date_utc = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),  date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());

//Make the calculation in UTC format
var beforeStare_utc = date_utc.addDays(-1);

//Show to the user in his/her local time
var beforeStare = new Date(beforeStare_utc + " UTC");

</p>

ここにJSFiddleがあります

于 2012-11-17T11:24:08.870 に答える