2011年3月27日日曜日

JavaScript Date 型

プログラミングメモ


Object ではあるが, 他とくらべると特殊
Java のCalendar クラス並みの処理はないが, Date よりはよいかな


var date = new Date();    // 現在の日付を返す

var d = new Date(2011,2,25);     YYYY/mm/dd

var d = new Date(2011,2,25,23,59,59);    YYYY,MM,DD,HH,mm,ss

月は 0~11(つまり1月は0)

ミリ秒もいける
var d = new Date(2011,2,25,23,59,59, 999);

Javaみたいに Calendar クラスを経由する必要はないのね

日付情報の取得
date.getFullYear();
date.setFullYear(year);
data.getYear();
date.getsetYear(year);
date.getMonth();
date.setMonth(month);
date.getDate();
date.setDate(date);
date.getHours();            // なぜかsがつく
date.setHours(hours);
date.getMinutes();
date.setMinutes(minutes);
date.getSeconds();
date.setSeconds(seconds);

文字列へ変換
date.toString();
date.toLocaleString();


- 数値(ミリ秒)へ
date.getTime();

-  date を変更 (ミリ秒を引数にもつ)
date.setTime(time);

比較とか, 演算にはこの形式を利用する

var long_date = Date.parse(str);      stringを解釈

- 比較
var date1 = new Date(2011,11,11);
var date2 = new Date(2012,12,12);

if ( date1.getTime() < date2.getTime() )
{
//  とかね
}

加算・減算はこのミリ秒を使う

function calDay ( date, day )
{
var time = date.getTime();
        var new_time = time + 24 * 60 * 60 * 1000 * day;   // 数日分プラス, マイナス
date.setTime(new_time);
}

 - コピー  オブジェクトなので, 通常の代入を使うと, 参照コピーになるので
値のコピーには気を付ける

src = new Date();
var date = new Date(src);     //  コピー元データをもとに新しく作り直す

or 
date.setTime(src.getTime());   //  コピー元データをもとに新しく作り直す

0 件のコメント:

コメントを投稿