2008/06/03

[Javascript]時、分を追加する

時刻に何分かを足したい場合のファンクションを作ってみました。


function gf_addTime(aHour,aMinute,aAddTime){

//現在の日付を取得
var ld_date = new Date();
//返り値
var ret = new Date();
//時を引数の値に設定
ld_date.setHours(aHour);
//分を引数の値に設定
ld_date.setMinutes(aMinute);

//1970年1月1日午前0時からのミリ秒を返す。
ld_date = ld_date.getTime();

//時刻の追加
ld_date = ld_date + aAddTime;

//時間を設定
ret.setTime(ld_date);

//日付の文字列結合と0の穴埋め
ret = ret.getHours().toString(10) +
ret.getMinutes().toString(10) + 0;

//4文字取得
ret = ret.substr(0,4);

return ret;
}

問題となったのは、計算方法。

いろいろと調べてみると、hoge256ブログさんのJavaScript による日付・時刻・時間の計算・演算のまとめでミリ秒単位にすれば計算できるのだとわかり、引数をいったんgetTimeでミリ秒単位にまで変換し、足し算を行った後、再び、setTimeで元の時刻に変換するように作成しました。

仮に10時30分の1時間後を算出したい場合、gf_addTime(10,30,60*60*10000)と実行することで、1130が返ってきます。

ただ、若干、作って許せないのが、3つ目の引数がミリ秒でないと、うまく計算できない点。
それに、時、分までしか対応していない点かな。

こだわってしまうとキリがないので、いったん、上の関数で納得させましたが。

まだまだ課題がありそうです。

0 コメント:

コメントを投稿