表題の通りになるのですが、現在Wordpressにてサイトを運営しております。
サイトの一部のテキストを曜日・時間帯によって何回か変更したいと考えております。
具体的には下記のような形が実現できたらと思っております。
日曜15:00~15:30に「只今タイムセール!」というテキストを30分間のみ表示
日曜15:30~月曜15:00に「次のタイムセールは月曜の15時~15時30分に行います」というテキストを表示
月曜15:00~15:30に「只今タイムセール!」というテキストを30分間のみ表示
月曜15:30分~火曜15:00に「次のタイムセールは火曜の15時~15時30分に行います」というテキストを表示
…以下、土曜日まで同じように繰り返しになります。
何か良いやり方がありましたら、教えて頂けましたらと思います。
宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
多分、そのようなプラグイン等はないのではないかな。
(汎用性がないので)時刻の判定やテキストの内容を変える方法を知りたいのであれば、ANo2様もすでにご提示になっていらっしゃいますが、
http://www.bing.com/search?q=%E6%99%82%E5%88%BB% …
>何か良いやり方がありましたら、教えて頂けましたらと思います
「良いやり方」は特に思いつきませんが・・・
1)時刻によってメッセージを変えて表示する関数を作成しておく
2)load時に1)を実行し、setTimeoutなどで適当な間隔で再実行させる
という考え方で実現できると思います。
時間の精度をどのくらいにしたいかで実行間隔が変わってきますが、たかだか一日2回しか変わらない表示のために何度も無意味に処理を繰り返すのもあまりにも非効率的なので、その時の時刻から次の表示変更時刻を計算してその少し前になったら、頻度を上げて繰り返すような処理にしておくのがよろしいかと思います。
また、ANo1様がすでにご指摘のように、クライアントの時計を利用するのは不正確の原因になりますので、正確さが必要な場合はサーバの時刻や以下のサイトなどを利用して、クライアントの時計を補正してあげるのがよろしいかと思います。
http://www.nict.go.jp/JST/JST.html
http://www2.nict.go.jp/aeri/sts/tsp/PubNtp/clien …
実際の使われ方がよくわかっていないのと、検証はしていないので、以下は考え方・やり方のご参考までに
例では、表示変更の3秒前に再実行し、それ以後は0.1秒刻みで繰り返し監視するようにしています。
(インデントには全角空白を使用)
window.onload = function(){
//表示メッセージリスト
var message = [
"只今タイムセール!",
"次のタイムセールは@曜の15時~15時30分に行います"
];
var elm = document.getElementById("hoge"); //表示対象要素
var dayList = "日月火水木金土".split(""); //表示曜日名リスト
var anHour = 60 * 60 * 1000;
var zoneOffset = -9 * anHour; //時差(日本:-9時間決め打ち)
function getDate(){
//正確な時刻が必要な場合は補正した時刻を返すこと
return new Date();
}
function setMessage(type, day){
elm.innerHTML = message[type].replace("@", dayList[day]);
}
function checkDate(){
var d = getDate(), type = 0, day = d.getDay();
var def = (15 * anHour) - ((d.getTime() - zoneOffset) % (24 * anHour));
if(def > 0){
type = 1;
} else if((def += anHour / 2) <= 0){
type = 1;
def += 23.5 * anHour;
day = ++day % 7;
}
setMessage(type, day);
setTimeout(checkDate, def > 3000? def - 3000: 100);
}
checkDate();
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 5 2023/02/24 09:17
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Windows 10 Win10の起動が遅い(OSは最新)ハードを交換しても解決しない 5 2023/03/25 01:04
- その他(ゲーム) これはゲーム中毒ですか? 20代の社会人です。年間1000時間にゲームを時間を使っています。基本的に 5 2023/06/11 09:48
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Excel(エクセル) エクセル 作業効率化 1 2023/02/14 21:55
- 地球科学 太陽系の惑星と週(日曜日~土曜日)、月(1月~12月)に付いての質問です。 太陽系には、8つの惑星が 3 2022/10/08 22:32
- その他(買い物・ショッピング) 24時間コスメのファンデーションを購入を18時10分頃に購入しました。 ご注文後、通常2~3日以内に 1 2023/05/27 18:46
- 派遣社員・契約社員 残業時間について教えてください 5 2022/12/17 10:58
- その他(暮らし・生活・行事) 大学の部活 2 2023/05/02 22:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptで文字列の特定文字...
-
翌月を取得するGASが分かりません
-
C#OpenCv V4にのエラーに関する...
-
var exports = exports || {}; ...
-
GAS アンケート回答後の自動返...
-
アルファベットABCD…をスマート...
-
setTimeoutによる繰り返しが途...
-
google apps scriptの終了のさせ方
-
google map apiで下記のhtmlが...
-
googleスプレッドシートのApps ...
-
今日からnヶ月後(前)
-
ボタンを押すことでテキストエ...
-
引数なしの関数で疑問です
-
javascriptで複数キーワード検...
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
ASP.NETのコントロールの値をJa...
-
javascript修正依頼
-
第3日曜日のみの日付を取得、...
-
Javascriptで指定した位置の文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
HTMLで作った時報アプリが動き...
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
javascriptでテーブルに追加し...
-
VSCODE[Python]の設定について
-
JavaScriptで決まった「時刻」...
-
ASP.NET MVCでObjectをjsに渡す
-
イベントが初めの一回しか起き...
-
jqGridについて
おすすめ情報