JavaScript/Date
Dateオブジェクトは日付と時刻を扱います。
目次 |
[編集] 概要
ある程度JavaScriptの基本構文を憶えると、JavaScriptで時計を作りたい、経過時間を測定したいなどの理由から、日付と時刻を扱う必要性が出てくるでしょう。Dateオブジェクトのコンストラクタを呼び出すと、地方時(日本標準時など)に基づく現在の日付と時刻のインスタンスが生成されます。
var now = new Date(); alert( now.getTime() );
このプログラムを実行すると "1330624759" のような文字列が表示されます。これは1970年1月1日0時0分0秒(エポック)から現在までの経過秒数で、UNIX時間(ユニックスじかん、Unix time)あるいはPOSIX時間(ポジックスじかん、POSIX time)と呼ばれます。UNIX時間はコンピュータ上で日時を扱う際の基本単位です。
var now = new Date(); alert( now.toString() ); alert( now ); // toStringメソッドは呼ばなくてもよい
読みやすい形式の日時を得るには、toStringメソッドを使用します。このプログラムを実行すると "Thu, 01 Mar 2012 17:59:19 +0000" のような文字列が表示されます。なお、Dateインスタンスを表示しようとするとtoStringメソッドは暗黙的に呼ばれるので、明示的に呼ばなくてもかまいません。Dateインスタンスからは年月日や時分秒を取り出すことができ、またDateオブジェクトは指定された任意の日付と時刻を扱うことができます。ただし、2000年問題と2038年問題に注意してください。
var now = new Date(); var fullYear = now.getFullYear(); // 年 var month = now.getMonth(); // 月 var date = now.getDate(); // 日 var hours = now.getHours(); // 時 var minutes = now.getMinutes(); // 分 var seconds = now.getSeconds(); // 秒 if ( month < 10 ) month = '0' + month; if ( date < 10 ) date = '0' + date; if ( hours < 10 ) hours = '0' + hours; if ( minutes < 10 ) minutes = '0' + minutes; if ( seconds < 10 ) seconds = '0' + seconds; alert( [ fullYear, month, date ].join('-') + 'T' + [ hours, minutes, seconds ].join(':') );
このプログラムを実行すると "2012-03-01T17:59:19+00:00" のような文字列を表示します(タイムゾーン指定子を除く)。JavaScriptにはsprintf関数やstrftime関数が存在しないため、日付と時刻に関する処理は複雑になりがちです。もし必要であれば、そのような関数を実装しているJavaScriptライブラリを使用することができます。
[編集] Date
[編集] プロパティ
- Dateオブジェクトのプロトタイプを返します。
[編集] メソッド
- now(非標準)
- Date.prototype.getTimeと同義です。
- 日付を表す文字列を解析し、UNIX時間に変換して返します。
- 指定された日時を協定世界時 (UTC) のUNIX時間に変換して返します。