javaScript

日付や時刻を操作する

前回の記事でnew演算子Dateコンストラクタを使い、利用可能なオブジェクトであるインスタンスを生成する方法について触れました。

一回インスタンスを生成すると、オブジェクトに用意されているメソッドやプロパティが利用できます。Dateオブジェクトの個別のインスタンスは内部に年、月、日、時、分、秒といった日付時刻のデータを持っております。それらの データを処理する目に、色々な日付時刻に関するメソッドが用意されています。

例をあげると、getFullYearメソッドを使用することで、年を西暦4桁の数値に変換できます。

サンプルコードの実行結果はこちら

日付や時刻を取得するメソッド

Dateオブジェクトには、日付や時刻を操作するメソッドが用意されていいます。下記に日時を取得する主なメソッドを書き留めておきます。

メソッド メソッドの説明
getFullYear 年を4桁の数値で返す
getMonth 月を戻す。戻り値は「0」が1月、「1」は2月
「11」は12月です
getDay 曜日を示す数値を戻す。「0」は日曜日、
「1」は月曜日、「6」は土曜日
getDate 日を戻す
getHours 時間を戻す、24時間形式なので
戻り値は0~23まで
getMinutes 分を戻す
getSeconds 秒を戻す

このうち、月を戻すgetMonthメソッドは戻り値を間違えやすいです。月数より1小さい値です。なのでサンプルコードをみると、 (now.getMonth() + 1 )と書いています。

getTimeメソッドで日数の差を計算する

日付や時刻の計算に便利なメソッドが、「1970年1月1日0時0分0秒から経過時間」をミリ秒単位で戻すgetTimeメソッドです。例えば、day1,day2という2つの異なる日時を入れられたDateオブジェっクトがあるとすると、2つの日時の差をミリ単位で計算するには以下のようにします。

ミリ単位の時間の差は計算できましたが、これを日にちの差を求めるにはどうすればいいでしょうか。

単位はミリ秒なので、秒に換算するには1000で割ります。
分に換算するにはそれをさらに60で割り、
時間に換算するにはそれをさらに60で割り、
日数に換算するにはそれをさらに24で割り、
値を「24*60*60*1000」で割れば日数の差が計算できます。

なのですが、日数として使用するには、小数点以下の桁が不要です。小数点以下を切り上げるには、Mathオブジェクトceilメソッドを使います。Mathオブジェクトは数値計算用のメソッドが多数用意されているオブジェクトです。メソッドは特殊で、インスタンスを生成しなくても使えます。

今年の残日数を計算する

サンプルコードの25,26行目で来年の元旦を示すDateオブジェクトを生成しています。Dateコンストラクタの最初の引数である年には、今日の日付が管理する変数nowに、getFullYearメソッドを実行して、今年を求めてその値に1を加算して来年を設定しています。月は「0」を指定する点に注意です。

29行目で。来年の1月1日と現在時刻との差をミリ秒単位で計算しています。それを「24*60*60*1000」で割り、Math.ceilメソッドで小数点以下を切り上げて日数に変換します。

日付時刻の設定メソッド

Dateオブジェクトに用意されている日付時刻を取得する
メソッドについて書いてきました。一方では、
日付時刻を設定するメソッドもあります。
データを取得するメソッドは「get」で始まり、
データを設定するメソッドは「set」で始まります。
例えば月の値を取得するメソッドは「getMonth」ですが、
月の値を設定するメソッドは「setMonth」です。

-javaScript
-, ,