質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

3091閲覧

営業時間・営業時間外のご案内の表示について

Leon-Lionking

総合スコア37

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/10/12 07:16

営業時間・営業時間外のJavaScriptを組んでいます。
実行したい内容
・営業時間の案内表示(例:本日は昼12時~夕方5時まで営業しております)
・上記の営業時間終了後、次の時間のご案内表示(例:本日は終了 土曜は朝11時~夜7時まで)
・24時間表示でなく、朝・夕・夜 の時刻を表示したい
・休日表示(例:本日は休業日です)

javascript

<script langage="javascript"> <!-- // メッセージの設定 message = new Object(); message.close = "本日の営業は終了しました"; message.holiday = "本日は定休日です"; // 営業時間の設定 var shop_hour = new Object(); shop_hour.open = new Array(); shop_hour.close = new Array(); // 日曜日 shop_hour.open[0] = "朝10時30分"; // 時間入力(定休日の場合、『 false 』) shop_hour.close[0] = "夕方5時"; // 月曜日 shop_hour.open[1] = "朝11時"; shop_hour.close[1] = "夜8時"; // 火曜日 shop_hour.open[2] = "朝11時"; shop_hour.close[2] = "夜8時"; // 水曜日 shop_hour.open[3] = false; shop_hour.close[3] = false; // 木曜日 shop_hour.open[4] = "朝11時"; shop_hour.close[4] = "夜8時"; // 金曜日 shop_hour.open[5] = "朝10時"; shop_hour.close[5] = "夜8時"; // 土曜日 shop_hour.open[6] = "朝11時"; shop_hour.close[6] = "夜7時"; var weeksName = new Array('日','月','火','水','木','金','土'); var optgroup = null; var today = new Date((new Date()).getTime()); var year = today.getYear(); var month = today.getMonth(); var day = today.getDate(); var hour = today.getHours(); var min = today.getMinutes(); if(hour < 10) hour = "0"+hour; if(min < 10) min = "0"+min; if (year < 1900) year += 1900; var now = hour + ":" + min; if(shop_hour.open[today.getDay()]){ // 営業日の場合 if(shop_hour.open[today.getDay()] <= now && now <= shop_hour.close[today.getDay()]) document.write("<div id='sales'>","ただいま営業中!","</div>","<div times='times'>" +shop_hour.open[today.getDay()]+ "から" +shop_hour.close[today.getDay()]+ "まで営業中","</div>"); // 日 営業時間 else if(shop_hour.open[0] > now) document.write("<div id='close'>","本日は終了","</div>","<div id='times'>日曜は、" +shop_hour.open[today.getDay()]+ "から" +shop_hour.close[today.getDay()]+ "まで営業しております","</div>") // 月・火・木・金 営業時間 else if(shop_hour.open[today.getDay()] > now) document.write("<div id='close'>","本日は終了","</div>","<div id='times'>月曜・火曜・木曜・金曜は、" +shop_hour.open[today.getDay()]+ "から" +shop_hour.close[today.getDay()]+ "まで営業しております","</div>") // 土曜日の営業時間 else (shop_hour.open[6] > now) document.write("<div id='close'>","本日は終了","</div>","<div id='times'>土曜は、" +shop_hour.open[today.getDay()]+ "から" +shop_hour.close[today.getDay()]+ "まで営業しております","<div/>") } else { // 定休日の場合 document.write("<div id='holiday'>水曜 休診</div>"); } //--> </script> <!-- // 営業日の管理 ここまで -->

実行したところ、3重に表示されてしまいます。
時間の表記ですが、日本語に表記しておりますが、時間終了後の判定が反映されません。

どなたかご教授お願いいたします。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

// 土曜日の営業時間 else (shop_hour.open[6] > now) document.write("<div id='close'>","本日は終了","</div>","<div id='times'>土曜は、" +shop_hour.open[today.getDay()]+ "から" +shop_hour.close[today.getDay()]+ "まで営業しております","<div/>")

2重に表示されている原因はこれだと思います。これはelse if (…の書き間違いじゃないですか?

また、"16:27"などの形式で格納されているnowの内容と、"朝11時"などの形式で格納されているshop_hour.open[xxx]を比較していますが、これでは正しく比較できるはずもありません。
とりあえず形式を"00:00"に合わせて比較しましょう。

投稿2017/10/12 07:33

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問