JavaScriptで日時を扱う時のメモ
- May 31st, 2013
JavaScriptで時間の差や指定日時の何時間後などを求める事があったので、気になった所などを書き留めておこうと思います。
1000ミリ秒
PHPでタイムスタンプを取得した場合は秒形式の値が返されるけど、JavaScriptの場合はミリ秒形式の値が返ってくる。
JavaScriptで時間を求める時は、「1秒 = 1000ミリ秒」の値を加えて計算する。
Date.parse()
日時の文字列を解析して、ミリ秒形式の値を返すメソッド。
ただし「2000-01-01 00:00:00」のように日付に「-」が使われている場合は、NaNを返すので、「2000/01/01 00:00:00」に置換してから利用する。
var datetime = '2000-01-01 12:30:00'; var datetime_parse = datetime.replace(/-/g, '/'); // ハイフンをスラッシュに置換する datetime_parse = Date.parse(datetime_parse); // ミリ秒形式の値に変換
date.setTime()
Dateクラスのオブジェクトに、新たな時間を設定できるメソッド。
値を設定する場合は、setTime()の引数にミリ秒形式の値を設定して利用する。
var d = new Date(); var datetime = '2000-01-01 12:30:00'; var datetime_parse = datetime.replace(/-/g, '/'); datetime_parse = Date.parse(datetime_parse); d.setTime(datetime_parse); // datetimeの時間を設定
指定日時から20時間後の値を求める
var d = new Date() , one_sec = 1000 // 1秒 , one_min = one_sec * 60 // 1分 , one_hour = one_min * 60 // 1時間 , datetime = '2000-01-01 08:45:50' , datetime_a = datetime.replace(/-/g, '/') , datetime_parse = Date.parse(datetime_a) , datetime_20h = datetime_parse + (one_hour * 20); d.setTime(datetime_20h); console.log(d); /* 出力結果 : Sun Jan 02 2000 04:45:50 GMT+0900 (東京 (標準時)) */
時間の差を求める
var one_sec = 1000 // 1秒 , one_min = one_sec * 60 // 1分 , one_hour = one_min * 60 // 1時間 , datetime_a = '2000-01-01 08:45:50' , datetime_b = '2000-01-01 16:33:30'; datetime_a = datetime_a.replace(/-/g, '/'); datetime_b = datetime_b.replace(/-/g, '/'); var diff = Date.parse(datetime_b) - Date.parse(datetime_a) , diff_h = Math.floor(diff / one_hour) // 時間 , diff_m = Math.floor(diff % one_hour / one_min) // 分 , diff_s = Math.floor(diff % one_min / one_sec); // 秒 console.log(diff_h + '時間' + diff_m + '分' + diff_s + '秒'); /* 出力結果 : 7時間47分40秒 */
- May 31st, 2013