JavaScriptで今日の日付と時刻を取得・表示する方法です。
毎回同じものを作っているような気がするのと、JavaScriptのビギナーの方むけの情報という意味で、このエントリーで動作サンプルを掲載しておきます。
1.現在日時を取得するサンプル
現在日時を取得するサンプルを以下に掲載します。このサンプルをウェブページに丸ごとコピー&ペーストすれば、サンプル下にある「出力結果例」の表示になると思います。
<script type="text/javascript">
var get_current_timestamp = function() {
var weeks = new Array('日', '月', '火', '水', '木', '金', '土');
var d = new Date();
// 年月日・曜日・時分秒の取得
var month = d.getMonth() + 1;
var day = d.getDate();
var week = weeks[ d.getDay() ];
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
// 1桁を2桁に変換する
if (month < 10) {month = "0" + month;}
if (day < 10) {day = "0" + day;}
if (hour < 10) {hour = "0" + hour;}
if (minute < 10) {minute = "0" + minute;}
if (second < 10) {second = "0" + second;}
// 整形して返却
return d.getFullYear() + "/" + month + "/" + day + "(" + week + ") " + hour + ":" + minute + ":" + second;
}
// 現在の日付・時刻を表示する
document.write(get_current_timestamp());
</script>
出力結果例
2012/01/12(木) 00:03:03
青色部分は現在日時の取得処理を関数にまとめたもので、その下の行にある「document.write( ... );」は、その関数を呼び出して動作を確認するためのものです。
2.別の関数から現在時刻を取得する
別の関数から現在時刻を取得したい場合、たとえばfoo()という関数から取得するには、赤色部分のように記述してください。青色は、1項のサンプルの青色部分が相当します。
<script type="text/javascript">
var get_current_timestamp = function() {
// 中略
}
function foo() {
var current = get_current_timestamp();
// 変数currentを使った処理を記述
}
</script>
3.出力フォーマットを変更する
出力フォーマットを変更するには次の部分を書き換えてください。
return d.getFullYear() + "/" + month + "/" + day + "(" + week + ") " + hour + ":" + minute + ":" + second;
例えば「xxxx年xx月xx日 xx時xx分」にするには、次のように書き換えます。
return d.getFullYear() + "年" + month + "月" + day + "日 " + hour + "時" + minute + "分";
4.月日時分秒を1桁で出力する
月日時分秒の「1」~「9」を1桁で出力したい場合は、次の部分をまるっと削除してください。
// 1桁を2桁に変換する
if (month < 10) {month = "0" + month;}
if (day < 10) {day = "0" + day;}
if (hour < 10) {hour = "0" + hour;}
if (minute < 10) {minute = "0" + minute;}
if (second < 10) {second = "0" + second;}
5.注意事項
get_current_timestamp()は関数リテラルによる定義(var xx = function(){ ... }という形式)のため、関数定義の前にdocument.write()などの処理を記述すると正常に動作しません。
<script type="text/javascript">
document.write(get_current_timestamp()); // これはエラー
var get_current_timestamp = function() {
// 中略
}
</script>
要するに1項のサンプルや2項のように、get_current_timestamp()の定義の後方に、get_current_timestamp()を呼び出す処理を記述してください。