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

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

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

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

Q&A

解決済

4回答

8345閲覧

phpで、時間を表示する

tidavest

総合スコア595

PHP

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

0グッド

1クリップ

投稿2017/02/23 05:08

<!Doctype html> <head><https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css> <link rel="stylesheet" type="text/css" href="style.css"></head> <body> <div class="wrapper"> <div class="header"> <H2>主の独り言</H> <img src="ninja.jpg"> <?php $now=date("H時i分s秒");?> <p>In Tokyo<?php print($now);?></p> </div> <div class="main"> </div> </div> </body> </html>

上記で、時間が表示されるものの、時刻が違うということと、
秒がリアルタイムで、刻まず、F5で更新しないと時間が変わりません。

現在の時刻がリアルタイムで、変わるものを作りたいのですが...

アドバイスお願いいたします。

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

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

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

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

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

guest

回答4

0

javascriptを使えば行けますよ。->引用元

JavaScript

1<p id="RealtimeClockArea">※ここに時計(2桁固定版)が表示されます。</p> 2<script type="text/javascript"> 3function set2fig(num) { 4 // 桁数が1桁だったら先頭に0を加えて2桁に調整する 5 var ret; 6 if( num < 10 ) { ret = "0" + num; } 7 else { ret = num; } 8 return ret; 9} 10function showClock2() { 11 var nowTime = new Date(); 12 var nowHour = set2fig( nowTime.getHours() ); 13 var nowMin = set2fig( nowTime.getMinutes() ); 14 var nowSec = set2fig( nowTime.getSeconds() ); 15 var msg = "現在時刻は、" + nowHour + ":" + nowMin + ":" + nowSec + " です。"; 16 document.getElementById("RealtimeClockArea").innerHTML = msg; 17} 18setInterval('showClock2()',1000); 19</script>

投稿2017/02/23 05:13

Honon

総合スコア23

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

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

tidavest

2017/02/23 05:23

ありがとうございます。 phpでは、出来ませんでしょうか。
Honon

2017/02/23 05:30

自分も昔に同じような事を考えてやってみてはいましたが、例えばデーターベースに時間を入れる場合に処理が入るので、結局表示はjavaScriptに任せて処理側はphpで分けました。
tidavest

2017/02/23 05:32

そうですか。ありがとうございます。
guest

0

どうしてもjavascriptが嫌ならmetaタグ入れるとF5を押さなくても自動でリロードしてくれます。
(以下では1秒ごとにリロード)

<head> <meta http-equiv="refresh" content="1"> ・・・略・・・

投稿2017/02/23 06:32

Y.H.

総合スコア7914

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

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

tidavest

2017/02/23 08:20

ありがとうございます。
guest

0

ベストアンサー

まずはウェブシステムの作りを理解するところから始めた方がよいですね。
通常のウェブシステムは、クライアント(ブラウザ)とサーバーで成り立っています。
サーバーにはクライアントからのリクエストに応える、HTMLやスクリプトを置きます。
クライアントからサーバーにリクエストがあると、サーバーで処理したHTMLなどをブラウザに出力します。
つまりリクエストがない限り、ブラウザには新しい情報が通達されないわけです。
提示のコードではリクエストされたタイミングのサーバー側の時間を表示しているので、ブラウザに出力された際、PCの時間と差異が生じます。
リアルタイムに…というのは上記のような理由から現実的ではありませんが、定期的にページを更新させることはできます。
ただページ全体が更新されてしまうのであまり有用ではないでしょう。
これを防ぐには、フレームで分割したりとか、Ajaxなどの技術を使うことでなんとかなりますが、例えば1秒おきにサーバーに時間を問い合わせるのは、あまりスマートなやり方ではありません。
そこでサーバーに頼らずともブラウザだけで処理できる仕組みがあります。
その代表的なのがJavaScriptです。
JavaScriptを使えばPCの時間を取得することができ、サーバーへのリクエストも不要なためリアルタイムな時間表示が可能になります。
質問は「PHPで…」なのでJavaScriptを使った例は提示しませんが、興味があれば調べてみてください。

投稿2017/02/23 06:01

ttyp03

総合スコア16998

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

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

tidavest

2017/02/23 08:20

ありがとうございます。ここでPHPで行うのは、あまり実用的でないということですね。
guest

0

phpで表示されるのはあくまでの「結果」なので
クライアントが再度phpにアクセスするなどしない限り
リアルタイムな変更は反映されません。

手書きの原稿をコピーをとったとして
もとの原稿をいくら書き換えてもコピーは新しくならないですよね?
必要なら新しくコピーをとりなおすということです

投稿2017/02/23 05:32

yambejp

総合スコア114843

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問