javascriptで時間操作がベンリ
今時jQueryといいつつも、jQueryがそもそもjavascriptのライブラリなわけだから当然jQueryを使う=javascriptを使う になるわけで。
そのjavascriptのDateオブジェクトの時刻操作が以外と便利なことが判明したのでメモ。
Dateオブジェクト生成したい場合は以下のとおり生成できる。
//引数無しで現在日時で生成 var date=new Date(); //引数有りで指定日時で生成(例は2013年11月20日 2:23) var date=new Date(2013,11-1,20,13,2,23);
※Dateオブジェクトではなぜか月を0〜11で扱われてしまうので-1しとく。
これで例えば時間だけを取りたい時は以下のとおりに取り出せる。
//時間を取り出す(この場合hourの値は2) var hour = date.getHours()
しかしこれだけでなく、setメソッドを使えば何分後とかの計算もしてくれる。
date.setMinutes(date.getMinutes()-60);
ここで優秀なのが、60分後を指定するとちゃんと時間をインクリメント(繰り上げ)してくれるとこ
つまり、以下の場合、「2時23分」を指定したDateオブジェクトに60(分)をsetしたため、Dateオブジェクトのもつ時刻は60分後の「3時23分」になる。(date.getHourの値が3になる)
var date=new Date(2013,11-1,20, 2,23); //60(分)をsetする date.setMinutes(date.getMinutes()+60);
ちなみにsetメソッドの引数に"-"(マイナス)を指定すれば何分前を指定することができる。これならjavascriptで時間操作の繰り上げ繰り下げに悩まされることはなさそう。
参考:
Date Object(setメソッド)
http://www.artemis.ac/contents/javascript/jsdate.htm
JavaScript による日付・時刻・時間の計算・演算のまとめ
http://www.hoge256.net/2007/08/64.html