JavaScriptで現在の日付から1週間前(7日前)の日付を取得する方法
JavaScriptで現在の日付から1週間(7日)前の日付を求めたい場合は、getDate()メソッドで取得した「日」の値から7を引き、setDate()メソッドで新しい日付を設定するのが基本の考え方です。
基本の構文
var anyVariableName = new Date(yourCurrentDate.setDate(yourCurrentDate.getDate() - 7));
getDate()は月の中の日付(1〜31)を返し、そこから7を引くことで7日前の日付を計算できます。また、setDate()に負の値や月の範囲を超える数値を渡しても、JavaScriptが自動的に月をまたいだ正しい日付に調整してくれるため、月末や年越しをまたぐ場合でも安心して使えます。
実装手順
ステップ1:現在の日付を取得する
まずnew Date()で現在の日時を取得し、コンソールに出力してみましょう。
var currentDate = new Date();
console.log("現在の日付=" + currentDate);
ステップ2:setDate()メソッドで7日減算する
続いて、setDate()メソッドを使って新しい日付を設定し、7日分を引き算します。
コード例
var currentDate = new Date();
console.log("現在の日付=" + currentDate);
var before7Daysdate = new Date(currentDate.setDate(currentDate.getDate() - 7));
console.log("1週間前の日付=" + before7Daysdate);
注意点: setDate()は元のDateオブジェクト自体を変更(破壊的処理)します。元の日付を保持しておきたい場合は、あらかじめ別の変数にコピーしておくか、new Date(currentDate)で複製を作成してから操作しましょう。
プログラムの実行方法
上記のプログラムはNode.js環境で以下のコマンドを実行することで動作を確認できます。
node fileName.js
ここでは、ファイル名をdemo60.jsとして保存した場合の例を示します。
実行結果
プログラムを実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo60.js
現在の日付=Tue Jul 14 2020 19:12:43 GMT+0530 (India Standard Time)
1週間前の日付=Tue Jul 07 2020 19:12:43 GMT+0530 (India Standard Time)
このように、現在の日付(7月14日)からきちんと7日減算された、1週間前の日付(7月7日)が取得できていることがわかります。同じ要領でgetDate() - 30とすれば30日前、getDate() + 7とすれば1週間後の日付も簡単に計算できます。
-
JavaScriptで現在の時刻を別のタイムゾーンの時刻に変更して表示する方法
JavaScriptのDateオブジェクトは、端末(システム)に設定されている時刻をそのまま取得して現在の日付・時刻を表示します。そのため、JavaScript単体でシステム時刻そのものを書き換えることはできません。 しかし、UTC(協定世界時)との時差であるタイムゾーンオフセットを計算に組み込むことで、あたかも別の時刻が設定されたかのように表示することが可能です。以下では、シンガポール(GMT+8)の時刻を求めるサンプルコードを紹介します。 サンプルコード <!DOCTYPE html> <html> <body>
-
JavaScriptである関数から別の関数へイベントオブジェクトを渡す方法
JavaScriptでは、イベントハンドラ内で取得したイベントオブジェクトを、そのまま引数として別の関数へ渡すことができます。イベントオブジェクトには発生元の要素(event.target)やイベントの種類などの情報が含まれているため、複数の関数で同じイベント情報を共有したい場合にとても便利です。以下は、クリックイベントのイベントオブジェクトを受け渡し、ボタンのフォントサイズと文字色を変更するサンプルコードです。サンプルコード<!DOCTYPE html> <html lang="en"> <head> <meta charset=