dポイントプレゼントキャンペーン実施中!

初歩の質問ですが、
現時刻の時間や分に+1をしたりしたいのですが、やり方がわかりません。
月+1はできました。
それと、if文が無効になるのはなぜでしょうか。
しょうむない質問ですが、教えてください。

<script language="JavaScript">
<!--
date = new Date();
wday = new Array("日", "月", "火", "水", "木", "金", "土");
mon = date.getMonth() + 1;
document.write(date.getFullYear() + "年" + mon + "月" + date.getDate() + "日(" + wday[date.getDay()] + ") ");
// -->
<!--
time = new Date();
hour = time.getHours();
min = time.getMinutes();
if (min < 10) { min = "0" + min; }
document.write(time.getHours() + "時" + time.getMinutes() + "分" );
// -->
</script>

A 回答 (2件)

Dateオブジェクトを使って時刻を+1したりするのは、getHours()やgetMinutes()を使って時刻を取り出し+1などしてsetHours()やsetMinutes()を使って設定します。


例えば、時刻を1時間進めるには、
time = new Date();
time.setHours(time.getHours()+1);
とします。

ifがうまく働かないのは、
minが数字であって、"0"という文字列に+しようとしているからだと思います。
文字列と連結するなら
"0" + min.toString();
の様にして下さい。
(これは、timeの中の分を変更するものではありません)
    • good
    • 0
この回答へのお礼

おお!即解決です!!(∩゜∀゜)
ありがとうございました!

お礼日時:2004/10/29 23:38

 Date()のコンストラクタは、1970年1月1日0時0分0秒からの経過時間(単位ミリ秒)を引数に取るオーバーライドがある。

なので、一旦getTimeメソッドでミリ秒に直してから足し引きしてもう一度newしてやると良い。ちなみに、日付の掛け算と割り算っていうのは意味が無いやんな。
 具体的にはこんな感じ。

d = new Date(0) これは1970年1月1日0時0分0秒のDateインスタンスになる

d = new Date();
d = new Date(d.getTime() + 60*1000); // 1分足す
d = new Date(d.getTime() + 60*60*1000); // 1時間足す
d = new Date(d.getTime() + 24*60*60*1000); // 1日足す
数値をマイナスする事で引き算も可能だ。


> if (min < 10) { min = "0" + min; }
> document.write(time.getHours() + "時" + time.getMinutes() + "分" );
もし"10時09分"と表示されないという事であれば、せっかくminを2桁ゼロ埋めにしたのにtime.getMinutes()で表示してるからだと思うよ。
    • good
    • 0
この回答へのお礼

おお!難しい解説!!(∩゜∀゜)
ありがとうございました!

お礼日時:2004/10/29 23:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!