1

私は文字列を持っています:

2012/12/27 04:00 午前

文字列は strtotime() を使用してエポックに変換され、次の結果が得られます。

1356609600

次に、これが呼び出されると:

select FROM_UNIXTIME(1356609600);

出力の時間が切り捨てられていることがわかります。時間が切り捨てられた理由、またはこのタイプの変換から時間を保持する方法を知っている人はいますか?

2012-12-27 12:00:00
4

1 に答える 1

4

ここで時間が切り捨てられることはありません。12/27/2012 04:00 amによる現地時間と見なされstrtotimeます。mysql に変換されると、mysql はローカル タイムゾーンで時刻を設定します。Mysqlと php のタイムゾーン設定が異なる場合、同じ時刻は表示されません。

PHPの場合は、またはに設定date.timezoneします。php.inidefault-time-zonemy.cnfmy.ini

たとえば、私のタイムゾーンはAsia/Dhakaです。php.ini と my.cnf の両方に設定しました

php.ini

date.timezone = Asia/Dhaka 

my.cnf

default-time-zone = 'Asia/Dhaka'
于 2012-12-14T01:22:17.710 に答える