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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

3364閲覧

<JS>営業時間と営業時間外で表示テキストを変更する条件分岐実装方法

roperope

総合スコア11

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2019/05/09 23:22

編集2019/05/10 02:25

前提・実現したいこと

Wordpressにて、営業時間には「営業中」営業時間外には「営業時間外」と
表示テキストを切り替えるプログラムを作りたい

営業日: 月,火,木,金,土
営業時間: 10:00〜12:00 , 13:00〜20:00
営業時間外: 水,日,祝 と 営業時間以外

発生している問題

以下2つの方法を組み合わせれば実現ができそうなのですが、
実装後に表示状態をテストし確認する訳にもいかないので、
是非お力をお借りできればと考えております。

曜日・時間ごとに表示を切り替える
https://peacepopo.net/blog-entry-151.html

祝日を取得する
https://iwb.jp/javascript-new-date-is-holiday-check/

試したこと

こちらのコードに祝日の判定を入れるにはどうすればよろしいでしょうか?

HTML

1<body onload="Settoday();"> 2 3<div id="Sun" style="display:none;"> 4<p>電話受付時間外</p> 5</div> 6<div id="Mon" style="display:none;"> 7<p>電話受付中</p> 8</div> 9<div id="Tue" style="display:none;"> 10<p>電話受付中</p> 11</div> 12<div id="Wed" style="display:none;"> 13<p>電話受付時間外</p> 14</div> 15<div id="Thu" style="display:none;"> 16<p>電話受付中</p> 17</div> 18<div id="Fri" style="display:none;"> 19<p>電話受付中</p> 20</div> 21<div id="Sat" style="display:none;"> 22<p>電話受付中</p> 23</div> 24</body>

Javascript

1<script> 2function Settoday(){ 3  var today = new Date() ; 4  var nowtime= ("0"+today.getHours()).slice(-2) +":"+("0"+today.getMinutes()).slice(-2); 5  var weekday = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ] ;   6  //リスト1 7  var startlist1 = [ "", "10:00", "10:00", "", "10:00", "10:00", "10:00" ]; 8  var endlist1 = [ "", "12:00", "12:00", "", "12:00", "12:00", "12:00" ]; 9    10  //リスト2 11  var startlist2 = [ "", "13:00", "13:00", "", "13:00", "13:00", "13:00" ]; 12  var endlist2 = [ "", "20:00", "20:00", "", "20:00", "20:00", "20:00" ]; 13    14  var starttime="00:00"; 15  var endtime="24:00"; 16    17  //リスト1のチェック 18  if(startlist1[today.getDay()] != ""){ 19    starttime=startlist1[today.getDay()]; 20  } 21  if(endlist1[today.getDay()] != ""){ 22    endtime=endlist1[today.getDay()]; 23  } 24  if ( nowtime >= starttime&& nowtime <= endtime){ 25    document.getElementById(weekday[today.getDay()]).style.display="block"; 26  } 27  28  starttime="00:00"; 29  endtime="24:00"; 30  //リスト2のチェック 31  if(startlist2[today.getDay()] != ""){ 32    starttime=startlist2[today.getDay()]; 33  } 34  if(endlist2[today.getDay()] != ""){ 35    endtime=endlist2[today.getDay()]; 36  } 37  if ( nowtime >= starttime&& nowtime <= endtime){ 38    document.getElementById(weekday[today.getDay()]).style.display="block"; 39  } 40} 41</script>

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

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

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

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

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

CHERRY

2019/05/09 23:50 編集

祝日を判定する関数はありませんので、祝日のデータを用意する必要がありますが、祝日のデータはどのように管理していますか?
m.ts10806

2019/05/10 00:19

>Javascript初心者です 「初心者」自体は質問要件ではありませんので、「初心者アイコン」を質問につけてください。
guest

回答2

0

ベストアンサー

実装後に表示状態をテストし確認する訳にもいかないので、

PHPでもJavaScriptでもローカルで動作確認できますので(PHPは簡単にするならXAMPP入れるなどローカルでサーバー立てる必要がありますが)
参考記事をもとにローカルでミニマムプログラムを作って動作確認すれば良いのではないでしょうか。
(ここで回答もらっても結局実装確認は必要ですし、本当にできているかどうかは回答だけではわかりません)

ただ、私個人の意見としてはブラウザ開発ツールから如何様にも改ざんして表示を操作できる
HTMLやCSS、JavaScriptといったクライアント側の言語で切り替えの処理を行うよりも
japanese-holidayのようなプラグインのあるPHP側でHTMLの表示の制御をされたほうが良いかと。
※適宜composerで祝日データを更新する必要がありますが
提示のリンクに「内閣府から祝日のデータをダウンロード」というのがありますが、そのCSVもPHPで読み取ったほうが確実です(こちらも適宜CSVを更新する必要がありますね)

投稿2019/05/10 00:20

編集2019/05/10 00:37
m.ts10806

総合スコア80854

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

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

roperope

2019/05/10 01:50

代替案までご提示頂きありがとうございます! PHPでの対応を検討したいと思います。
m.ts10806

2019/05/10 02:08

参考になったようで何よりです。 ※別途、質問への追記・修正の依頼のほうでいくつか指摘が入っていますが、質問は編集できますので適宜ご対応くださいね。
guest

0

そのリンク先のように祝日を取得し、(本日の?)日付データと比較する、という処理を書けばいいでしょうね

投稿2019/05/10 00:06

y_waiwai

総合スコア87784

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問