【JavaScript】先月、今月、先週、今週の日付を計算

JavaScriptで日付計算をしたときのメモ。

日付の表示はjQuery UIdatepickerを使用。

コードサンプル

var objBase = j$("#<?php echo $sId;?>");
var objOption = {
  numberOfMonths  : 3,
  defaultDate     : "-1m",
  showAnim        : "",
  changeYear      : true,
  showButtonPanel : true
};
var objBegin = objBase.find("[name$=_begin]").datepicker(objOption);
var objEnd   = objBase.find("[name$=_end]").datepicker(objOption);

//先月、今月、先週、今週をセット
var objToday = new Date();
//先月
objBase.find("[name=last-month]").click(function(){
    objBegin.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth() - 1, 1));
    objEnd.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth(), 0));
});
//今月
objBase.find("[name=this-month]").click(function(){
    objBegin.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth(), 1));
    objEnd.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth() + 1, 0));
});
//先週
objBase.find("[name=last-week]").click(function(){
    iDate = objToday.getDate() - 7 - objToday.getDay(); //日曜
    objBegin.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth(), iDate));
    iDate = objToday.getDate() - 7 + 6 - objToday.getDay(); //土曜
    objEnd.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth(), iDate));
});
//今週
objBase.find("[name=this-week]").click(function(){
    iDate = objToday.getDate() - objToday.getDay(); //日曜
    objBegin.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth(), iDate));
    iDate = objToday.getDate() + 6 - objToday.getDay(); //土曜
    objEnd.datepicker("setDate", new Date(objToday.getFullYear(), objToday.getMonth(), iDate));
});

PHPのコードがあったり、jQuery UIを知らないと意味不明かもしれないけど、自分用メモだから良しとする。

 

<関連記事>

【JavaScript】jQueryとjQuery UIを使ってボタンを点滅させる
jQueryとjQuery UIのバージョンを確認(Google CDNを使う)
jQuery UIでリッチなユーザーインターフェースを実装する