• ベストアンサー

毎日午前0時にhtmlを切り替えたいです

a.htmlとb.htmlを作成しておき、 毎日午前0時になったら自動で切り替えるようにしたいです。 どなたか教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.7

遅くなった。 ところで、あなたのやりたいことが、できたでしょうか? あまり説明などするタイプの人ではないので、これ以上はご勘弁。 さて、1日おきでページを切り替える場合何を基準にするかです。 暦の奇数日と偶数日で切り替えようとすると、31日と翌月の1日では、連続で奇数日が表示されますね。 そこでここでは、Date オブジェクトを使いました。 JavaScript の Date オブジェクトは、標準時の1970年1月1日0時0分0秒から経過時間をmsで記憶しています。 なので、その値を1日の長さ(86400000ミリ秒)で割ると、1970年から何日経過しているかわかります。 さらにそれを2で割って余りを求めます。その結果が1ならば、経過日数が奇数で、0ならば偶数日経過していることになります。 if 文に使われた比較式は、奇数日か偶数日なのかしか判断しません。 そして、またもやらかした! if (((t+34200000||0)/86400000|0)%2) location.href = 'b.html'; +と-を間違えた!申し訳ない。ごめんなさい

ichigo-tounyu
質問者

お礼

長々とお付き合いくださって本当にありがとうございました!!! 回答も丁寧に説明してくださってとても感謝しております。 ほんとうにありがとうございました。 今後もいろいろと勉強していきたいとおもいます。 今回はお世話になりました。 ありがとうござました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

回答No.6

> 本来はどういった手法でやるものなのでしょうか? サーバー側で処理すべきです。 JavaScriptは、サーバーではなくパソコン側で実行されます。 現状 1. パソコン側が、a.html をサーバー側に要求します。 2. サーバ側が、a.html を送信します。 3. スクリプトが日付を判断して、b.htmlを要求します。 4. サーバ側が、b.html を送信します。 結果 a.html の送受信が無駄になります。 解決策 a.html の要求があったとき、サーバー側で、日付を判断して適当なファイルを送信する 具体策 1. 日付が変わるとき、サーバー側のプログラムで、a.html と b.html の中身を交換する   cron を参照 2. a.htmlの要求があったとき、日付を判断して適当なファイルを送信する   サーバー側で動くperl or php 言語などを参照

ichigo-tounyu
質問者

お礼

なるほど・・・ プログラムのわからないわたしにも分かりやすいご回答ありがとうございます!!! 今回のサーバはECサイトでPHPが使えなかったので 教えていただいたやり方でやろうと思っています。 1点確認させていただけますでしょうか。 毎日0時にa.htmlからb.htmlに切り替える際に、 何時までa.htmlにアクセスするとb.htmlに飛ばされますでしょうか。 昨日の夕方に設定をして、今朝確認をしてみたらa.htmlの表示のままになってしまったので もしかして終了時間があるのかと思い、最後のご質問をさせていただきました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.5

けんしょうするために1にちもまつの? 86400000 = 24(じかん)×60(ふん)×60(びょう)×1000() なので、1じかんおきなら 3600000 でわると、1じかんおきになるよ 1じかんもまてないなら、60000 でどう?1ふんおき。 でもこういうものは、すくりぷとでやるものじゃないよ。

ichigo-tounyu
質問者

お礼

60000で検証してみます!ありがとうございます!! 何も分からなくてすみません。。 そうなんですね! 本来はどういった手法でやるものなのでしょうか? プログラムに弱くてすぐにjavascriptかなと思ってしまったのですがっ・・・ お時間のあるときでよいので教えてくださいませんでしょうか。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

あ~ごめん、きたいしているのは、にほんじかんだよね なので、 if (((t||0)/86400000|0)%2) location.href = 'b.html'; を if (((t-34200000||0)/86400000|0)%2) location.href = 'b.html'; にでもしようか。 9時間30分ずれてるから if (true) location.href = 'b.html'; としたとき、b.html がひらくよね?

ichigo-tounyu
質問者

お礼

ご丁寧にありがとうございます! さっそく教えていただいたように修正してみます。 明日再度確認いたしますね。 たびたびの質問に答えてくださってありがとうございます!!!!

ichigo-tounyu
質問者

補足

if (true) location.href = 'b.html'; にしたときはb.htmlが開きました! すごいです! 翌日はa.htmlを変更しておけば交互に変わる、 という認識であっていますでしょうか。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

a.html のへっどぶぶんに、いかのようにかく (XMLHttpRequestがつかえることがじょうけんだけど) さーばのじかんをしゅとくしてる <!DOCTYPE html> <head> <script type="text/javascript"> function t(r){return (r=new XMLHttpRequest)?(r.open('HEAD','#',false),r.send(null),new Date(r.getResponseHeader('Date'))):null} if (((t||0)/86400000|0)%2) location.href = 'b.html'; </script> </head>

ichigo-tounyu
質問者

お礼

ご回答ありがとうございます!!! 早速サンプル作ってみますね!

ichigo-tounyu
質問者

補足

昨日教えていただいたようにサンプルを作ってサーバにあげて、 今朝a.htmlのURLで見てみたのですが変わっていませんでした。 何かやり方違っていますでしょうか。 お手数ですが教えてください。 よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

これで出来ますよ。 ---------------------------- <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="output"></div> <script type="text/javascript"> var output = document.getElementById('output'); var date = new Date(); var hour = date.getHours(); // 分岐処理 if( 0 <= hour ) { output.innerHTML = 'A'; } else { output.innerHTML = 'B'; } </script> </body> </html> ------------------------------------ まぁ、このままだと機能しない気がしますが。 「0時から何時まで、↑のスクリプトを実行するか。」 という処理も追加しないと駄目かと思います。

ichigo-tounyu
質問者

お礼

ご回答ありがとうございました!!! さっそくサンプルを作ってみますね! 毎日0時から23時59分59秒まで実行したいのですが (これで、毎日0時に切り替わることになります・・よね) 何か書き加える必要はあれば教えていただけますでしょうか。

ichigo-tounyu
質問者

補足

サンプルを作ってみたところ、 AとBの中に文字列のみのときはOKだったのですが htmlを記述したところブラウザにエラーが出てしまいました 何か違う書き方をしていますでしょうか。。 重ね重ね質問ばかりですみません。

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

javascriptでみる時間とはクライアントのPCのローカル時間です ユーザーの時計が狂っていたり、意図的にずらしてあれば精度に欠けるため 意味がないです。 やるならサーバー側のプログラムでcronやatなど時間を見てコピー処理するか アクセスされた時間を見て表示するものを切り換える処理するかでしょう

ichigo-tounyu
質問者

お礼

ご回答ありがとうございました!!! ローカル時間なのですね・・・ プログラミングについて知識がないので javascript以外のものも使うことは少し難しいです・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • javascriptを使用して毎日午前0時にhtm

    javascriptを使用して毎日午前0時にhtmlを切り替えたいです javascriptを使用して毎日午前0時にhtmlを切り替えたいです index_01.html~index_14.htmlの14通りページを作成しておき、 毎日午前0時になったら自動で切り替えるようにしたいです。 index_14.htmlまで行ったらまたindex_01.htmlに戻すとしたいです。 この切り替えをずっとループしたいのです。 その場合の記載場所や記載するページも教えて頂けると助かります。 どなたか教えてください。 よろしくお願いいたします。

  • 毎日午前3時にパソコンが勝手に動く

    閲覧ありがとうございますm(_ _)m いつからか覚えていないのですが、毎日午前3時になるといつも休止状態にしているパソコンが勝手に動き出してしまうようになりました。 特にそういうソフトを入れた記憶がなく、午前3時になる瞬間パソコンをいじっていても特に変化がないので何が起きているのかよくわかりません。 もしそれを確認する術があったら教えていただきたいです。 また、他の原因は考えられるでしょうか? 機種:TX-65HBLS OS:Windows Vista Home Premium 32ビット版

  • 午前12時って?

    午前12時とは、昼なんでしょうか?それとも、夜ですか? 午前0時が夜なのはわかるんですが、それと午前12時はちがうものなのでしょうか? 例えば、29日の午前12時というのは、30日の午前0時と同じになるんでしょうか? しっかりとした根拠があるもの(省庁の発表とか)をご存知の方がおられましたら、教えてください!! よろしくお願いします。

  • 午前0時について。

    午前0時は全時間での中では唯一以下での3つでの言い方が有りますのでしょうか?教えて下さい。 1:午前0時。 2:夜12時。 3:深夜24時。

  • EXCELで夜中12時を午前0時00分と表示したい

    現在、A1に24:00と入力すると、表示形式[$-ja-JP]AM/PM h"時"mm"分"で午前12時00分と表示されるようになっています。 これを、A1に24:00と入力して、午前0時00分と表示させたいです。 下記のサイトを参考にしてみましたがうまくできませんでした。 書類とEXCELを実際に使用するのはわたしで、わたしは午前12時00分で構わないのですが、社長はお気に召さないようです。すぐに怒って怒鳴るタイプなので、なんとかできるならなんとかしたいです。 どうぞよろしくお願いします。 https://ameblo.jp/volcfal/entry-12631335679.html https://all.hokanko.jp/%E5%8D%88%E5%89%8D0%E6%99%8229%E5%88%86%E3%81%A8%E6%99%82%E5%88%BB%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

  • 4歳児は起きてから午前11時までに何をしていますか

    4歳児は起きてから午前11時までに何をしていますか

  • 4歳児は起きてから午前11時までに何をしていますか

    4歳児は起きてから午前11時までに何をしていますか

  • 午前0時の表記について

    午前0時の表記をするにあたり、AM0:00とPM0:00はどちらが正しいでしょうか? 午前0時から午前3時まで、のような案内をAMPM表記で行いたいです。

  • 正午(12時)は、午前、午後、どちらに属する?

    お昼の12時(正午)は、午前でしょうか、午後でしょうか。 どちらに属するのでしょうか? あるいは、 どちらにも属さないのか? http://www.nao.ac.jp/faq/a0401.html を見ますと、 午前12時なら午前であり、午後0時ならば午後ということになりそうですが、  ───午前12時と午後0時は同じものなのか、違うものなのか。「明けの明星と宵の明星は同じか、別物か」という哲学問題が発生する─── 同時に、 午前12時は存在するようですが、午後0時というのは存在しないとなる。 しかし、 午前は正午の前であり、午後は正午のあとと考えますと、午前12時、午後0時という表現はおかしいとなるのでしょう。 正午は午前午後を分ける境界点であり、午前・午後のどちらにも属さない、と考えるのが、最も妥当的なのでしょうか。 では、 0時という時刻は、昨日、今日、あるいは、今日、明日のどちらに属するのでしょうか。 0時は、正午と同じように、昨日今日、今日明日を分割する境界点であり、どちらにも属さないのでしょうか。 であるとすると、一日の長さが24時間であるということに疑義が浮かびます。一日は、数学的な表現をしますと、  0時 < t < 24時 あるいは、  (0,24) の区間のことをいい、一日の長さは24時間よりホンのちょっぴり短い? いやいや、一日の長さは、素朴な方法では定義できず、 数学の極限などの考え方を取り入れないと、定義できない? そして、 これは、アキレスと亀のパラドクスになる??? このパラドキシカル(?)な状況の解決はあるのでしょうか。 そして、 これは何に由来しているのでしょう。 言葉や概念の曖昧さがこの原因なのでしょうか。 それとも、時(の流れ)は、時間や時刻が存在しない? 時そのものが存在しない??? 教えてください。 よろしくお願いします(ペコリ)。 数学には、《デデキント切断》というものがありますが…。 デデキント切断 http://ja.wikipedia.org/wiki/%E3%83%87%E3%83%87%E3%82%AD%E3%83%B3%E3%83%88%E5%88%87%E6%96%AD PS 日付変更線という、よくわからないものもあります。 この日付変更線を右足でまたいだとき、 私(の体)は、今日・明日、あるいは、昨日・今日、どちらに属しているのであろか。 (境界の)内と外でもいいのですが…。

  • デスクトップPCが午前0時に自分で起動する。

    最近PCが自動的に起動します。毎日です。午前0時のようです。恐ろしくなり起動後、パスワード設定をしないとWINDOWSが開かないようにしました。システムツールをのぞいてみると、タスクスケジューラで0:00に起動した跡が毎日残っていました。削除したいのですが、プロンプトで削除しないとだめみたいです。良い方法をご伝授ください。 OS: ビスタproです。

このQ&Aのポイント
  • PC-LZ750MSSには24Vの外付けバッテリーが必要です。市販されているかどうか教えてください。
  • 外付けバッテリーとは、PC-LZ750MSSに接続することでバッテリー駆動が可能なデバイスです。
  • 市販の外付けバッテリーを購入するには、IT関連のオンラインショップやパソコンメーカーの公式サイトを利用すると便利です。
回答を見る