WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:リンク先の時間的な変更。

0:[投稿] an [2007/01/30 23:21 ] [環境:IE6.WINXP Apache,perl]

トップページに/***1.htmlへのリンクをしています。15時になったら/***2.htmlへ変更したいです。次の日の15時には/***1.htmlへ戻し、その繰り返しをしたいです(locationによるトップページの変更ではない)。javascriptでifやswitchを使って散々試しましたが、次の日になるとうまくいきません。具体的に書きますとアンケート(kent様の)の集計結果を15時にクリアしたいのと同時にクリアする前の集計を残しておきたいからです(上の例では.htmlと書きましたが)。その時間は会社にいるのでチェック出来ません。perlの知識がないのでjavascriptで何とかしたいのですがアドバイスを宜しくお願いします。


1:[回答] an [2007/01/30 23:52 ]

yahooの知恵袋でこの質問以前の質問を致しました。似たような質問ともとれるので一応ご報告しておきます。


2:[回答] もん [2007/02/02 01:52 ]

1_tmp.html,2_tmp.htmlを用意して、定期的にどちらかを1.htmlにrenameかければよいのでは?
perlですが…。

>javascriptでifやswitchを使って散々試しましたが、次の日になるとうまくいきません。
曜日で判定してはいかがでしょうか。
   


3:[完了] an [2007/02/04 15:18 ]

もんさんご回答ありがとうございました。
perlは、出来そうもありません^^;

>曜日で判定してはいかがでしょうか。
曜日で判定でなんとか出来ました。曜日判定をする場合、リンク先が2つなので次週になるとうまく処理出来なくなるので、思い切ってリンク先を7つ用意してswicthとifでなんとかしました(集計保存と集計クリアが目的なので)。

けどソースは膨大になりましたけど・・・スッキリ組めるようにがんばります。


4:[完了] きあらうむ [2007/02/05 11:25 ]

現在の日付を1年間365日の通し番号に変換し、その偶数/奇数で判定するのはどうでしょうか・・。

年の変わり目で奇数→奇数となってしまいますが、365日の通し番号にさらに年数を足せば解決します。


5:[質問] an [2007/02/05 23:27 ]

きあらうむさんご回答ありがとうございます。
初心者ながらjavascriptにチャレンジしていますが、頭がこんがらがっています。
現在switchで曜日判定し、ifで時間判定しています。1アンケートあたりcgi(アンケート)を5個設置し、それが複数あるので膨大な量となっています。
考え方の参考になりました。もしよろしければ偶数/奇数の判定する方法を教えていただけないでしょうか。エクセルなら出来るのにー!です(当たり前か)。


6:[回答] 神崎 [2007/02/07 22:23 ]

> もしよろしければ偶数/奇数の判定する方法を教えていただけないでしょうか
2で割り切れるなら偶数
割り切れなければ奇数


7:[回答] きあらうむ [2007/02/08 14:26 ]

むずかしく考えすぎていました。
日付が変わるごとに偶数・奇数がスイッチされるようにするのは、単純にDateオブジェクトのgetTime()で得た数値を日数に換算して、判定をすれば可能でした。
これならうるう年も考慮する必要がないので簡単です。

検証用コード
===================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>日付の偶数・奇数判定</title>
<script type="text/javascript">

 function go()
 {
   var NDATE = new Date
   (
     eval(document.getElementById("iyear").value),
     Math.max(1, Math.min(12, eval(document.getElementById("imonth").value))) - 1,
     Math.max(1, Math.min(31, eval(document.getElementById("idate").value)))
   );
   
   var NOW_YEAR = NDATE.getYear();
   
   if (NOW_YEAR < 2000)
   {
     NOW_YEAR += 1900;
   }
   
   var now_time     = NDATE.getTime();
   var check_value  = Math.floor(now_time / 1000 / 60 / 60 / 24) + 1;
   
   document.getElementById("result").value =
   (
     '判定対象の日付は [' + NOW_YEAR + '年' + (NDATE.getMonth() + 1) + '月' + NDATE.getDate() + '日]\n' +
     '1970年1月1日から [' + check_value + '] 日\n'
   );
   
   if ((check_value) % 2 == 0)
   {
     document.getElementById("result").value += "判定結果 : 偶数";
   }
   else
   {
     document.getElementById("result").value += "判定結果 : 奇数";
   }
 }
 
</script>
</head>
<body>
<h1>日付の偶数・奇数判定</h1>
<hr>
<h2>任意の日付を入力</h2>
<p>
<input type="text"  size="10" id="iyear" value="2007"> /
<input type="text"  size="10" id="imonth" value="2"> /
<input type="text"  size="10" id="idate" value="8">
<br>
<input type="button" value="判定" onclick="go()">
</p>
<hr>
<h2>判定結果</h2>
<p>
<textarea cols="50" rows="6" id="result"></textarea>
</p>
</body>
</html>
===================================================


8:[完了] an [2007/02/14 22:43 ]

きあらうむさんありがとうございます。
ソースを書いてくだっさって感謝です!
詳細は、ぱっと見では理解できません(初心者ゆえ)がいろいろこれを元にいろいろ探って行きたいと思います。考え方としても他にも使えそうなので本当にありがとうございました。

回答(必須): 状態:

お名前(必須):

URL:




[戻る]