「時間帯によって表示が変わる方法」の時間帯設定の意味が分かりません。

[上に] [前に] [次に]
hiro 1999/10/08(金) 09:38:40
「時間帯によって表示が変わる方法」を雑誌のサンプルで試しで作ってみました。
ちゃんと動作されたのですが、その時間帯の設定が、どうも私の思ってるような
把握の仕方ではないようで…。

動かして確認しながら画像名を書き変えているのですが、よく分かりません。

下記のスクリプトの場合、[(t<=7)…]の部分はどういった意味を持つのでしょうか?
私の把握の仕方では、朝7時にa1.jpgの画像に切り換わり昼の12時にa2.jpg
の画像に切り換わり…。という考え方でした。(でもなんだか違うみたいで…)

(略)
var Mess1="<IMG SRC='a1.jpg' WIDE='400' HIGHT='250'>";
var Mess2 = "<IMG SRC='a2.jpg' WIDE='400' HIGHT='250'>";
var Mess3 = "<IMG SRC='a3.jpg' WIDE='400' HIGHT='250'>";
var Mess4 = "<IMG SRC='a4.jpg' WIDE='400' HIGHT='250'>";
var Mess5 = "<IMG SRC='a5.jpg' WIDE='400' HIGHT='250'>";
function geth(t){
               if (t<=7) { document.write(Mess1) }
        else { if (t<=12) { document.write(Mess2) }
        else { if (t<=17) { document.write(Mess3) }
        else { if (t<=20) { document.write(Mess4) }
        else { if (t<=23) { document.write(Mess5) }
        }}}}
}
(略)

また、この他にも記述の仕方があるみたいで、とほほさんのサンプルみたいに
「(hour < 5)」で時間帯を設定しているようですが、こちらはどのような意味を持つのでしょうか?

初心者の私に教えて下さい。よろしくお願いします。

hiro-kim 1999/10/08(金) 10:03:06
上記は「呼ばれる側」の関数:geth()を定義している部分しか引用されていません。

問題はこの関数を「呼ぶ側」。正しい時刻のタイミングでgeth()を呼び,正しい引数:t を渡しているかどうか,でしょう。

(略)の部分のどこかにgeth()を呼んでいる箇所があるはずですから,それを提示してみてください。

みんこ 1999/10/08(金) 10:05:33
var t=today.getHours();
があるものだとして...(なかったら説明をよく読もう!)
t=t時ってことです。

t=7なら7時。
t=18なら18時。
t<=12なら午前中。

あとは小学生のとき習った「おおきい、ちいさい、ひとしい」を
思い出して下さい。

hiro 1999/10/08(金) 11:26:39
hiro-kimさん>
(略)の部分はこんな感じです。
<SCRIPT LANGUAGE="JavaScript">
<!--
h = new Date();
   geth(h.getHours());
//--->
</SCRIPT>
です。アドバイスよろしくお願いします。

みんこさん>
なるほど!
そうすると…
「t=12」と「t<=12」の違いは

「t=12」は昼12時のみ(12時ちょうど?12時台?)に表示。
「t<=12」は昼12時まで表示。
と考えてよろしいのでしょうか?(違ったでしょうか?)

そう解釈したとすると元例のように“=”ばかりで設定した場合、
それぞれの時間以外はどんな表示がされるのでしょうか?
(どこでそれを設定するのでしょうか?)

よろしくお願いします。

hiro 1999/10/08(金) 11:41:27
みんこさん>
すみません。間違えました。

元例では“=”ではなく“<=”を使ってましたね(^_^;)

改めて、元例を使って解釈し直してみると

7時まで(23時から7時まで)はa1の画像、
12時まで(7時から12時まで)はa2の画像、
17時まで(12時から17時まで)はa3の画像、
20時まで(17時から20時まで)はa4の画像、
23時まで(20時から23時まで)はa5の画像。
が表示されると考えて良かったでしょうか?

また、元例の反面すべて“=”で設定した場合、
7時のみa1の画像、
12時のみa2の画像、
17時のみa3の画像、
20時のみa4の画像、
23時のみa5の画像。
と考えて良いのでしょうか?
(↑そうすると各時間以外はどんな表示がされるかが疑問です。教えて下さい)

厄介な質問ばかりですみません。教えて下さい。
お願いします。

みんこ 1999/10/08(金) 12:15:48
=じゃないです。この場合は==です。
http://www.tohoho-web.com/js/operator.htm#Comparison
とほほのJavaScript入門は読んでおきましょう。

>そうすると各時間以外はどんな表示がされるかが疑問です。

しつもん:
1時のおやつはりんごです。
3時のおやつはシュークリームです。
このとき2時のおやつは何でしょう?

こたえ:
................。
つーか自分でやってみそ。サンプルサイトはたくさんありますが
面白いから自分でやってみそ。勉強にもなるし。


ちなみに昔こんな事がありました。
../199906/99060036.htm

hiro 1999/10/08(金) 13:25:50
ありがとうございました!

とほほさんのHPをコマメに見てきたつもりでしたが、気付きませんでした。
教えて下さってありがとうございます!!

早速その入門ページを見てみました。とても感激しました!

・exp1 <= exp2 (e3/N2)
exp1がexp2以下であればtrue、さもなくばfalseを返す。…

の文がありました。でも「true」と「false」の意味がうまくつかめません。
同じく入門で調べてみたら、
・true (e3/N2)…「真」を表す特別な値。
・false (e3/N2)…「偽」を表す特別な値。
とありました。これは簡単に言えばどういう意味なのでしょうか?

あとこの意味が分かりさえすれば、入門の説明と照らし合わせて、本来の謎が解けそうです。
(あと一息…!)

基本的な事をお聞きしてすみません。
どうかお願いします。

hiro-kim 1999/10/08(金) 14:29:05
if (式)
{
  式を評価した結果としてtrue が返ってきたとき実行する命令群
}
else
{
  式の評価した結果としてfalseが返ってきたとき実行する命令群
}

>if (t<=7) { document.write(Mess1) }
>7時まで(23時から7時まで)はa1の画像

t<=7 だから,23〜7ではなく,0〜7です。

hiro-kim 1999/10/08(金) 14:49:17
>h = new Date();
>geth(h.getHours());
>
>「t=12」は昼12時のみ(12時ちょうど?12時台?)

getHours() を実行するとどんな値が返ってくるのか調べてみると理解できるでしょう。

一撃必殺JavaScript日本語リファレンス
http://www.shiojiri.ne.jp/~openspc/JavaScript/ref/index.htm

hiro 1999/10/08(金) 17:04:11
hiro-kimさん>
ホンの少し分かってきました。
色々実行して見て勉強してみようと思います。また分からない事があったら教えて下さい。

みんこさん>
../199906/99060036.htm
見ました。
結局の所、大丈夫ですよね?
WinIE4.0でもちゃんと反応しますよね?
私はIE5.0(時々NN)でしか確認出来ないので、ちょっぴり不安になりました。

みんこ 1999/10/08(金) 17:20:23
>結局の所、大丈夫ですよね?

とは思うんですが別種の弊害があるので入れ子はなるべくしない方がいいかと。
ってゆーかわかりにくいし。閉じカッコ忘れやすいし。
うちの場合は結局入れ子やめて

function geth(t){
if (t>=0 && t<7)  document.write(7時前です);
if (t>=7 && t<12) document.write(7時過ぎ12時前です);
if (t>=12 && t<24) document.write(12時過ぎでまだ日付はかわってませ〜ん);
}

みたいに書いたっす。

hiro 1999/10/09(土) 01:29:52
[[解決]]
ありがとうございました。
みんこさん、hiro-kimさんのおかげで、どうにか理解する事が出来ました。
色んな事をやろうとすればする程、だんだん深く難しくなっていきますね。がんばります!
またよろしくお願いします。

[上に] [前に] [次に]