サービスを構築する際に、日付の操作を行う事がある。
WEBブラウザ上に表示してある日付に対して簡易に処理を行うために、javascriptで操作する必要があり、
以後の開発効率化の為に、調査も含めてサンプルを作っておきます。
指定日に対して*日前の値を取得する方法
//2015/1/1 0:0:0の13時間前をセットしてみる。
var date = new Date();
//年をセット
date.setYear(2015);
//月をセット(月は0スタートなので、-1をすると分かりやすい)
date.setMonth(1-1);
//日をセット
date.setDate(1);
//時をセット
date.setHours(0 - 13);
//分をセット
date.setMinutes(0);
//秒をセット
date.setSeconds(0);
console.log(date);
結果
Wed Dec 31 2014 11:00:00 GMT+0900 (JST)
もっと簡単に書いてみると
var date = new Date(2015,1-1,1,0-13,0,0);
console.log(date);
[ year , month , day , hour , minutes , second , msec]
この順番で登録すれば、set関数を使わなくても登録できる。
2つの日付けから期間数を表示する
1月1日から1月3日の期間数は、日では3日間、時間では72時間・・・
日付のフォーマットは「yyyymmddhhiiss」とする。
1970年からの秒数を取得する
var date = new Date(2015,1,1,0,0,0);
console.log(date.getTime());
> 1422716400000
2つの日付の差分を計算して、秒数を日数や時間単位に変換してやると期間日数が取得できる。
20150101から20151231までの日数を取得する
//データ設定
var d1 = {
y:2015, m:1, d:1, h:0, i:0, s:0
};
var d2 = {
y:2015, m:12, d:31, h:0, i:0, s:0
};
//日付セット
//*同日で1日間という返答にするために、後日の方に1を加える
var date1 = new Date(d1.y, d1.m, d1.d, d1.h, d1.i, d1.s);
var date2 = new Date(d2.y, d2.m, d2.d+1, d2.h, d2.i, d2.s);
//差分の秒を取得
var diff = date2.getTime() - date1.getTime();
//日数に変換
var days = parseInt(diff / (24 * 60 * 60 * 1000) ,10);
console.log(days);
> 365
指定日(2015年1月1日)の曜日を取得
取得する曜日は0-6までの数値で取得され、0が日曜日で6が土曜日のため、
配列で表示用の曜日リストを作る必要がある。
var week = ["Sun","Mon","Tsu","Wed","Thu","Fri","Sut"];
var date = new Date(2015,1,1,0,0,0);
console.log(week[date.getDay()]);
0 件のコメント:
コメントを投稿