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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

726閲覧

現在の時刻での15分ごとの最新の画像を表示されるようにしたい

live1

総合スコア5

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2019/08/15 16:58

実現したいこと

ウェブページで現在の時刻での15分ごとの最新の画像を表示されるようにしたいです。
そのために、部分的にURLを変える必要があります。
http://example.jp/live/image/20190816/1230/livecamera.jpg

http://example.jp/live/image/20190816/1245/livecamera.jpg

http://example.jp/live/image/20190816/1300/livecamera.jpg

http://example.jp/live/image/20190816/1315/livecamera.jpg

変わる内容は以下です。
年月日
YYYYMMDD(今日の年月日)
時刻
(0000|0015|0030|0045|0100|0115|0130|0145|0200|0215|0230|0245|0300|0315|0330|0345|0400|0415|0430|0445|0500|0515|0530|0545|0600|0615|0630|0645|0700|0715|0730|0745|0800|0815|0830|0845|0900|0915|0930|0945|1000|1015|1030|1045|1100|1115|1130|1145|1200|1215|1230|1245|1300|1315|1330|1345|1400|1415|1430|1445|1500|1515|1530|1545|1600|1615|1630|1645|1700|1715|1730|1745|1800|1815|1830|1845|1900|1915|1930|1945|2000|2015|2030|2045|2100|2115|2130|2145|2200|2215|2230|2245|2300|2315|2330|2345)

例えば、ページにアクセスしたときの時刻が2019年08月16日15時25分だった場合は、
http://example.jp/live/image/20190816/1515/livecamera.jpg
ページにアクセスしたときの時刻が2019年08月16日15時40分だった場合は、
http://example.jp/live/image/20190816/1530/livecamera.jpg
の画像が表示されるようにしたいです。

現在の時刻での最新の画像を表示されるようにしたいです。
プログラム言語はJavaScriptがいいですが、ほかの言語でも大丈夫です。

今考えているコードがありますので、参考にしてください。

コードで実行された結果を表示するコードもよくわからないので、教えていただけると幸いです。
こんな感じでしょうか。
<img id="#img" src="http://example.jp/live/image/20190816/1230/livecamera.jpg" style="width: 100%;">

ソースコード

JavaScript

1<script type="text/javascript"> 2 var currentDate = new Date(); 3 currentDate.setMinutes(currentDate.getMinutes() - 15); 4 5 var justMin = parseInt($.format.date(currentDate, "mm"), 10); 6 justMin = justMin - justMin % 15; 7 8 camera.url = camera.url.replace( /yyyyMMdd/g , $.format.date(currentDate, "yyyyMMdd")); 9 camera.url = camera.url.replace( /hhmm/g , $.format.date(currentDate, "HH") + ("0" + justMin).slice(-2)); 10 break; 11 12 default: 13 break; 14 } 15 if(data[0].match(/200/)) { 16 $("img").attr("src", camera.url + "?" + (new Date()).getTime()); 17 } 18 19 }; 20</script>

よろしくお願いいたします。

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

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

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

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

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

m.ts10806

2019/08/15 22:43

現状提示されているコードの問題点は何でしょうか。 それとも「このコードを参考にして作ってください」という作業依頼でしょうか。(となると質問ではないですね)
guest

回答1

0

ベストアンサー

JavaScript

1window.onload = function() { 2 var time= new Date(); 3 var year = time.getFullYear(); 4 var month = ("0"+(time.getMonth() + 1)).slice(-2); 5 var date = ("0"+time.getDate()).slice(-2); 6 var hour = ("0"+time.getHours()).slice(-2); 7 var minute = time.getMinutes(); 8 var minute = Math.floor(minute / 15); 9 if ( minute == 0 ) { 10 var minute = '0' + minute; 11 } else { 12 var minute = minute * 15; 13 } 14 document.getElementById("image15").src = 'http://example.jp/live/image/'+year+month+date+'/'+hour+minute+'/livecamera.jpg'; 15}

確か#ってIDに使えなかったからimage15っていうIDのついたimgタグのsrcを書き換えるように作りました。
なんとなく思いつきで書いたのでもっと良い書き方あるかもしれません。

追記

JavaScript

1window.onload = function() { 2 var stime= new Date(); 3 var time = new Date(stime.getTime() - 540000); 4 var year = time.getFullYear(); 5 var month = ("0"+(time.getMonth() + 1)).slice(-2); 6 var date = ("0"+time.getDate()).slice(-2); 7 var hour = ("0"+time.getHours()).slice(-2); 8 var minute = time.getMinutes(); 9 var minute = Math.floor(minute / 15); 10 if ( minute == 0 ) { 11 var minute = '0' + minute; 12 } else { 13 var minute = minute * 15; 14 } 15 document.getElementById("image15").src = 'http://example.jp/live/image/'+year+month+date+'/'+hour+minute+'/livecamera.jpg'; 16}

投稿2019/08/16 03:36

編集2019/08/16 23:54
kyoya0819

総合スコア10429

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

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

live1

2019/08/16 20:00

回答ありがとうございます。 実現したいことができました。 本当にありがとうございました!
live1

2019/08/16 21:23 編集

こんなことは可能でしょうか。 画像がサーバーに送られるのが9分後になるので、 9分程度見られない時間が発生してしまいます。 そのため、6時6分にアクセスしたとき、 0545の画像を表示するようにする。 6時10分にアクセスしたときは0600の画像を表示する。 どの部分を変更したらそのようなことができるでしょうか。 よろしくお願いします。
kyoya0819

2019/08/16 23:55

追記しました。 まぁまさか「コピペ」して使わないと思うのできちんと理解してからご利用ください。
live1

2019/08/17 00:00

ありがとうございます。 勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問