日付

Date

Dateオブジェクトは日付と時刻を表します。日付、時刻の読み出しおよび設定が可能です。

ndt = new Date();
ndtに新しく日付オブジェクトを作成します。日付オブジェクトを作成するときはnewを頭につけてnew Date()とします。

<script type=";text/javascript";>
<!--
ndt = new Date();
document.write(";<p>現在時刻:";+ndt+";</p>";);
// -->
</script>

UTC+0900のように表示されているのは日本の時間がUTC(世界標準時)から9時間進んでいるという事をあらわしています。

ローカル時刻

.toLocaleStringメソッドを付加する事でローカル時刻表示されます。

<script type="text/javascript">
<!--
ndt = new Date();
document.write("<p>現在時刻:"+ndt.toLocaleString()+"</p>");
// -->
</script>

ブラウザにより表示が違います。ブラウザによりtoLocaleStringを使用してもしなくても同じ表示の場合があります。

日付時刻から任意の値を取得

Dateオブジェクトから個別の値を取得します。
メソッドを付加する事でDateオブジェクトから個々の数値を得る事ができます。

getFullYear
4桁の西暦
getMonth
月。月は0から11までの数値なので1を加算する事で実際の月に対応します。
getDate
日。
getDay
曜日。曜日も0から6までの数値で日曜から土曜を表します。配列に和暦の曜日を入れておくことで和暦の曜日表示が可能です。
getHours
時。
getMinutes
分。
getSeconds()
秒。

このページを開いた時刻(パソコンにセットされている時刻)を個別に表示します。

<script type="text/javascript">
<!--
var ndt = new Date();
youbi= new Array("日","月","火","水","木","金","土");
nowY=ndt.getFullYear();
nowM=ndt.getMonth()+1;//0から11なので1+
nowD=ndt.getDate();
nowYou=ndt.getDay();
nowH=ndt.getHours();
nowMin=ndt.getMinutes();
nowS=ndt.getSeconds();
document.write("<p>"+nowY+"年"+"<br>");
document.write(nowM+"月"+"<br>");
document.write(nowD+"日"+"<br>");
document.write("("+youbi[nowYou]+")"+"<br>");
document.write(nowH+"時"+"<br>");
document.write(nowMin+"分"+"<br>");
document.write(nowS+"秒"+"</p>");
// -->
</script>

日付の指定

Dateは日付を指定してオブジェクトを作成することができます。Date(4桁西暦,月-1,日)と指定します。

お正月日付のオブジェクトshougatuを作成します。

<script type="text/javascript">
<!--
shougatu = new Date(2010,1-1,1);
//年,月(0から11なので1を引く),日
document.write("<p>お正月:"
+ shougatu.toLocaleString()+"</p>");
//-->
</script>

作成したshougatuオブジェクトから現在日時を引いてあと何日でお正月か計算します。(お正月がまだ到来していないとして)

<script type="text/javascript">
<!--
ndt = new Date();//現在日付
shougatu = new Date(2010,1-1,1);//年,月(0から11なので1を引く),日
diff = shougatu.getTime() - ndt.getTime();
//getTime()メソッドはミリ秒を返す
//差のミリ秒を日にちに戻す。
diffday = Math.ceil(diff / (1000 * 60 * 60 * 24));
document.write("<p>お正月まで:"+ diffday +"日</p>");
//-->
</script>

日付の差を計算するときに同じ月なら単純に日を引けば求まるが、月や年をまたぐとそうは行かなくなります。
その場合は基点よりの経過日数を比較します。

getTime()は1970年1月1日午前0時(GMT)を基点とし、そこからの経過時間をミリ秒(1000分の1秒)で取得します。
お互いのDateオブジェクトのGTMからの経過時間をgetTime()メソッドで取得し差を計算します。

diff = shougatu.getTime() - ndt.getTime();
diffにミリ秒単位の差が代入されましたので1日のミリ秒(1000 * 60 * 60 * 24)で割って日単位にします。
このとき1日未満の数値は1日として切り上げたいのでMath.ceil()で切り上げの計算をします。