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

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

ただいまの
回答率

87.36%

web上にmysqlを利用して現在時刻を表示させたい。(php、mysql、javascrptでの時間表示を行っている。)

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 602

score 17

最終目標

mysqlを使用して自身のwebサイトに現在時刻を表示させたいです。

行ったこと

phpでのmysql接続確認

仮説

<?php
    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASSWORD', '******');
    define('DB_NAME', 'shop');

    // エラー表示設定:通知系以外全て表示    
    error_reporting(E_ALL & ~E_NOTICE);

    try {
        $dbh = new PDO('mysql:'.DB_NAME.';'.DB_HOST, DB_USER, DB_PASSWORD);
        print('接続しました。');
    }
select curtime()を
    catch(PDOException $e)
        print('ERROR:'.$e->getMessage());
        exit;
    }
?>

にselect curtime()をどこかに入れ、時間を表示させる?

その場合データベースネームは?

開発環境

仮想環境(バーチャルボックス上のcentos7.6)
php ver7.2.20
mysql ver 8.0.16
ホスト Windows10

追加 (作業中のもの)

php、mysql、javascrptでの時間表示を行っている。

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2019/07/19 10:58

    >英字を全角文字で書くのは止めては?
    これは私も思います。

    キャンセル

  • Orlofsky

    2019/07/19 11:07

    質問を修正しては?

    キャンセル

  • hakusa.ppl

    2019/07/19 11:09

    ありがとうございます。

    キャンセル

回答 4

+3

select curtime()をどこかに入れ、時間を表示させる?

はい、DB接続ができたのであればクエリも投げられるはずです。

その場合データベースネームは?

テーブルを引かないので不要です。dbname=全体を省略してください。


いろいろ突っ込みどころが多すぎるのでコメントします。

  • そもそも論として、DBサーバから引いた時刻をユーザーに表示する必然性はどこにあるのでしょうか。通信で遅延したりするだけで正確な時間にはならないです。
  • データベースに接続してクエリを投げるのは基本中の基本です。そこまで他人に調べてもらわないと書けないレベルであれば、誰かに習うことをおすすめします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/19 11:01

    ご丁寧にありがとうございます。

    キャンセル

checkベストアンサー

0

下記の書き方で現在時刻を取得できると思います。

<?php

    try {
        $dbh = new PDO('mysql:'.DB_NAME.';'.DB_HOST, DB_USER, DB_PASSWORD);
        $stmt = $pdh->query("select curtime();");
        $result = $stmt->fetch(); // $result[0]で取得可能
    }

下記の書き方だとPHPで現在時刻を取得できます。

<?php
echo date("H:i:s");

また、Web上に表示とのことなのでJSを使っても良いかと思います。

<script>
var date = new Date();

var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();

document.write(hour + ":" + minute + ":" + second);
</script>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/19 11:00

    ご丁寧にありがとうございます。

    キャンセル

0

その場合データベースネームは?

不要です。テーブルも不要です。

リファレンスを見ると分かりますが
MySQL 5.6 リファレンスマニュアル  /  ...  /  SELECT 構文

SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr ...]
[FROM table_references
[PARTITION partition_list]
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name'
[CHARACTER SET charset_name]
export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]

必須なのは「SELECT」と「select_expr」だけです。 
select_exprは「取得するカラム」ですが、別にカラムである必要はなく、計算結果や固定値でもいいわけです。

select 1+1;
select 'テスト';

ただできれば、プログラム側で扱いやすいようにエイリアスは付けたほうが良いですね。

select 1+1 as add;
select 'テスト' as word;

蛇足:
でも時間だけならPHPだけでいいのでは・・・

<?php
echo date("H:i:s");

JavaScriptでもできますし・・

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/19 10:54

    ありがとうございます、php、mysql、javascrptでの時間表示を行ってまして。
    丁寧にありがとうございます。

    キャンセル

  • 2019/07/19 10:55

    大目的や前提は書かれるべきかと思います。

    キャンセル

  • 2019/07/19 10:59

    大変申し訳ございません
    つたない質問に真摯にお答えいただきありがとうございます。

    キャンセル

  • 2019/07/19 10:59

    質問本文に追記してください(質問は編集できます)

    キャンセル

0

select curtime() as d1,curdate() as d2,now() as d3;

mysqlサーバーの現日時を取りたいのですか?
PHPでアクセスしているならPHPの日付関数で取ればいいので
あまり意味がないですよ

print date('Y-m-d H:i:s');

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/19 11:01

    ありがとうございます。

    キャンセル

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

  • ただいまの回答率 87.36%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • PHPに関する質問
  • web上にmysqlを利用して現在時刻を表示させたい。(php、mysql、javascrptでの時間表示を行っている。)