経緯
少し長くなるので、コード形式にて記述しています。今回の質問では経緯を無視していただいても大丈夫だと思います。
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
回答1件
あなたの回答
tips
プレビュー