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

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

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

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

Q&A

解決済

2回答

18531閲覧

PHP date関数での表示がおかしい

Z-TALBO

総合スコア525

PHP

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

0グッド

1クリップ

投稿2017/09/20 01:44

編集2017/09/20 02:04

時刻のずれということではありません。

ただ、表示がおかしいということです。

この質問を書いている時間が「10:30」としますが、、、
ふとプログラムの中でdate('H:i')を使った場所があり見ると、、、
[01:30]となっていました。。。

最初はあれ?時刻のずれとかあるのかな?と思い、、、

php.iniのtimezoneがAsia/Tokyoなのを確認
dateとhwclock -rの時刻がずれていたのも確認したので、ntpのインストールから同期させて
日時に関しては同期できています。

date('Y-m-d')に関しては問題なく表示されていますが、10のところがなぜか01になるんです、、、

何か原因等わかりますでしょうか?

###解決
確認してみると、UTCとなっておりました。。。
php.iniのtimezoneとかはAsia/Tokyoなってるけどと思っていましたが、、、

コメントの;をはずしてなかったので、はずしたら解決しました。

お手数をおかけしました。。。

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

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

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

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

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

guest

回答2

0

ズレている時間的に、タイムゾーンがUTC(デフォルト)になっていると思われます。
可能性としては
①PHPがロードしているphp.iniと質問者様が設定変更したphp.iniが別ファイルになっている。
②プログラム内でini_set()関数でタイムゾーンが変更されている。
が挙げられます。(①はよくある事象です)

可能であれば

PHP

1phpinfo();

でロードしているphp.iniのパスを確認し、

PHP

1echo ini_get('date.timezone'); // 設定中のタイムゾーンを出力 2echo date_default_timezone_get(); // ↑が設定されていない場合のデフォルトのタイムゾーンを出力

で設定されているタイムゾーンを出力してみてはいかがでしょうか。

http://php.net/manual/ja/function.phpinfo.php
http://php.net/manual/ja/function.ini-get.php
http://php.net/manual/ja/function.date-default-timezone-get.php

投稿2017/09/20 02:00

Clor

総合スコア883

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

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

Z-TALBO

2017/09/20 02:03

回答ありがとうございます。 phpinfoのことをいつも忘れてます、、、、 今回は別ファイルというより、date.timezoneの;をはずしわすれておりました、、、
guest

0

ベストアンサー

日本時間から-9時間されて表示されているように見えるということは、UTC等で出力されている可能性があります。
下記で2行とも"10:57 Asia/Tokyo"のような表示になるでしょうか。
1行目が"Asia/Tokyo"以外であれば、php.iniの設定によるものかと思います。

PHP

1<?php 2print date('H:i e'); 3 4ini_set('date.timezone', 'Asia/Tokyo'); 5print date('H:i e');

投稿2017/09/20 01:55

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Z-TALBO

2017/09/20 02:02

回答ありがとうございます。 確かに一行目がUTCになっておりました。 そもそもdate.timezoneの;をはずしわすれてました、、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問