質問

月/年をまたいで正しくロールバックできるように、JavaScript の日付を 1 日減らす必要があります。つまり、「今日」の日付がある場合、「昨日」の日付を取得したいと考えます。

これを行うと常に必要以上のコードが必要になるように見えるので、もっと簡単な方法はないかと考えています。

これを行う最も簡単な方法は何ですか?

[編集:以下の回答の混乱を避けるために、これは JavaScript Java の質問ではありません。]

役に立ちましたか?

解決

var d = new Date();
d.setDate(d.getDate() - 1);

console.log(d);

他のヒント

var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);
 day.setDate(day.getDate() -1); //will be wrong

これでは間違った日が返されます。UTC -03:00 未満、チェックしてください

var d = new Date(2014,9,19);
d.setDate(d.getDate()-1);// will return Oct 17

より良い使い方:

var n = day.getTime();
n -= 86400000;
day = new Date(n); //works fine for everything

getDate()-1 トリックを実行する必要があります

簡単な例:

var day = new Date( "January 1 2008" );
day.setDate(day.getDate() -1);
alert(day);
origDate = new Date();
decrementedDate = new Date(origDate.getTime() - (86400 * 1000));

console.log(decrementedDate);

setDate(dayValue)

dayValue は、月の日を表す 1 ~ 31 の整数です。

から https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setDate

あなたの問題(そして私の問題)を解決する動作は仕様の範囲外のようです。

必要と思われるのは、addDate()、addMonth()、addyear() ...です。機能。

JS での日付の操作は頭痛の種になることがあります。したがって、最も簡単な方法は使用することです 瞬間.js あらゆる日付操作に対応します。

1 日を減算するには:

const date = moment().subtract(1, 'day')
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top