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

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

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

dateは、date型や日付に関する関数や処理についてのタグです

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

PHP

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

Q&A

解決済

1回答

444閲覧

unix 正常な時刻を得れない

yuuyu

総合スコア1139

date

dateは、date型や日付に関する関数や処理についてのタグです

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

PHP

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

0グッド

0クリップ

投稿2020/08/31 06:15

経緯

少し長くなるので、コード形式にて記述しています。今回の質問では経緯を無視していただいても大丈夫だと思います。

text

1ローカルにてphpの実行をしていた際に、phpの時間が正常に取得できていないことに気がつきました。 2 3### 検証1 4下記コードは、ターミナルにて実行した際の表示です。 5 6--------zsh-------- 7 % php -a 8Interactive shell 9 10php > date_default_timezone_set('Asia/Tokyo'); 11php > echo date("Y-m-d G:H:i"); 122020-08-31 14:14:20 13php > sleep(10); 14php > echo date("Y-m-d G:H:i"); 152020-08-31 14:14:20 16php > echo date("Y-m-d G:H:i"); 172020-08-31 14:14:20 18php > exit 19------------------- 20なお、この時実行したのは「2020/08/31 14:19:20」頃であり、開始時間も一致していません。 21 22### 検証2 23--------php-------- 24<?php 25declare(strict_types=1); 26 27date_default_timezone_set('Asia/Tokyo'); 28echo date("Y-m-d G:H:i"); 29echo "<br>"; 30sleep(10); 31echo date("Y-m-d G:H:i"); 32echo "<br>"; 33echo date("Y-m-d G:H:i"); 34echo "<br>"; 35------------------- 36また、上記コードをphpファイルに保存し、```php -S```にてローカルサーバーをたてたところ、 37--------html------- 382020-08-31 14:14:25 392020-08-31 14:14:25 402020-08-31 14:14:25 41------------------- 42 43と、こちらも時間がずれていました。(なお、シェルでの実行と、ローカルサーバーでの実行時間は1分以上空いており、5秒後ではありません) 44 45time関数は内部時刻を取得しているという認識でいたため、HPにいくと、「現在の Unix タイムスタンプを返す」と記載されていたため、Unix タイムスタンプが原因ではないかと思いました。

本題

Unixタイムスタンプを調べるため、下記の2種類を実行しました。

% date 2020年 8月31日 月曜日 14時54分12秒 JST % date +%s 1598853259

これを確認すると、

php > date_default_timezone_set('Asia/Tokyo'); php > echo date("Y-m-d G:H:i",1598853259); 2020-08-31 14:14:54

という形で、date +%sの方だと前置きにあるphpと同じ時刻が取得されました。
このことから、システム時刻にずれはないものの、unix時刻にズレがある事が確認できました。

質問

上記のunix時刻のずれを修正することは可能なのでしょうか?
なお、exec $SHELL -lによる再起動、及び本体の再起動は実行してみましたが、変化はありませんでした。

環境

Mac OS 10.15.6
zsh 5.7.1
php PHP 7.4.9

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

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

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

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

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

Daregada

2020/08/31 07:46

「14時54分12秒」で「14:14:54」になっているあたりでピンときませんかね。
guest

回答1

0

ベストアンサー

PHP: date - Manual

format
DateTimeInterface::format() が受け入れるフォーマット。

PHP: DateTime::format - Manual
詳しくはそのリンク先を見てもらうとして、
echo date("Y-m-d G:H:i",1598853259);
おかしいですね、分の箇所に時の書式を充てているのは。
もしかして
echo date("Y-m-d H:i:s",1598853259);
ではないですか?

投稿2020/08/31 07:40

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yuuyu

2020/08/31 07:47

回答ありがとうございます。 とても初歩的なミスなのに気付く事ができず申し訳ないです。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問