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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

6331閲覧

javascript 日付によって表示を変更する方法

退会済みユーザー

退会済みユーザー

総合スコア0

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/08/15 06:11

編集2019/08/15 20:17

問題点(質問内容)

JavaScriptなどを使ってHTMLファイルだけで日付によって表示される文字を変更する方法はありませんか。

理想の形式

形としては、
ある指定した開始日時を過ぎたら、その表示が出てきて、
開始日時の前や別に指定した終了日時の後は、表示できない旨を表示
といった形です。

実際の表示例

具体的な案です。以下の場合の書き方を掲載していただければと思います。
<前提条件>
表示開始日時:2020/7/24
表示終了日時:2020/8/9

<2020/7/24より前(この日を含まない)の表示> 非公開です。
<2020/7/24~2020/8/9(両日を含む)期間中の表示> 公開中!
<2020/8/9より後(この日を含まない)の表示> 非公開です。

こんな感じです。

実は、投稿前に以下のhtmlにしましたが成功しませんでした。

HTML

1<span class="view_timer" data-start-date="2016/2/15 0:00" data-end-date="2016/2/16 0:00">表示</span> 2 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.2/jquery.min.js"></script> 3 <script> 4$(document).ready(function() { 5 $(".view_timer").each(function(index, target) { 6 var startDate = $(this).attr("data-start-date"); 7 var endDate = $(this).attr("data-end-date"); 8 var nowDate = new Date(); 9 if (startDate) { 10 startDate = new Date(startDate); 11 } else { 12 startDate = nowDate; 13 } 14 if (endDate) { 15 endDate = new Date(endDate); 16 } 17 if (startDate <= nowDate && (!endDate || nowDate <= endDate)) { 18 $(this).show(); 19 } else { 20 $(this).hide(); 21 } 22 }); 23}); 24</script>

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

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

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

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

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

Lhankor_Mhy

2019/08/15 06:14

javascriptを使う場合、ブラウザの表示上見えていないだけで、情報は事実上公開されることになりますが、それはかまいませんか?
退会済みユーザー

退会済みユーザー

2019/08/15 08:11

それでも構いませんが、可能ならば公開されない方がいいです。
guest

回答2

0

ベストアンサー

質問者さんがJavaScriptと言っているので大丈夫だろうと思って書きました。

JavaScript

1window.onload = function () { 2 var today = new Date(); 3 var start = new Date(2020, 7, 24, 0, 0, 0, 0); //2020年7月24日0時0分0秒0 4 var end = new Date(2020, 8, 9, 0, 0, 0, 0); //2020年8月9日0時0分0秒0 5 if (start.getTime()<=today.getTime() && today.getTime()<=end.getTime()) { 6 document.write('公開中'); 7 } else { 8 document.write('非公開'); 9 } 10}

CodePen

ifとelseの中にCSSで要素の表示非表示とか入れる手もあります

一応秒数指定まで書いときました

投稿2019/08/15 06:54

編集2019/08/15 10:15
kyoya0819

総合スコア10429

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

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

kyoya0819

2019/08/15 07:02

ちなみに、 var today = new Date(); の()の中に 年, 月, 日 の書式で入力すると「今日」の日付を変えられます。 Codepenでお試しください。
x_x

2019/08/15 07:37

onload にする意味は何でしょうか?
kyoya0819

2019/08/15 07:54 編集

深い意味はありません。 「ページを開いた時に表示するならonloadでいいのでは」くらいです。 あと強いていうなら「有名だから」っていうのもあります。 onload以外にこの場合適任なものがありましたら後学のためにお教えいただけるとありがたいです。 遅いのは承知していますがまずはわかりやすいコードで書きました
guest

0

CSS

1:root main { 2 display: none; 3} 4 5:root.open main { 6 display: block; 7} 8 9:root.open .note { 10 display: none; 11}

JavaScript

1function checkDate() { 2 var now = new Date(); 3 document.documentElement.classList.toggle('open', now >= new Date(2020, 7 - 1, 24) && now < new Date(2020, 8 - 1, 10)); 4 setTimeout(checkDate, 60000); 5} 6 7checkDate();

HTML

1 <main>公開中!</main> 2 <p class="note">非公開です。</p>

https://developer.mozilla.org/ja/docs/Web/API/Element/classList

投稿2019/08/15 08:01

x_x

総合スコア13749

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

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

退会済みユーザー

退会済みユーザー

2019/08/15 08:12

投稿していただいたあとですみませんが、時刻指定もできるといいのですが、可能ですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問