11

タイトルが示すように、誰でもコードの理由を説明できますか

ini_set( 'date.timezone', 'Europe/Athens' );

動作しますが

date_default_timezone_set( 'Europe/Athens' );

ではない?それは私にこのエラーを与えます:

致命的なエラー: 未定義関数 date_default_timezone_set() の呼び出し

タイムスタンプを変換するソリューションを探していましたが、Web で見つけたのは を使用することだけでしたdate_default_timezone_set。しかし、変換には常に 1 時間の差がありました。

次に、init_setコードを使用しているこのトピック「strftime()関数が誤った時間を表示する」を見つけました(その後、RTMを行ったところ、ドキュメントですでに言及されていることがわかりました)。私はそれを試してみましたが、うまくいきました。

しかし、なぜ機能しないのかという答えは見つかりdate_default_timezone_setませんでした。

誰か説明してくれませんか?

4

3 に答える 3

-1

ローカルホスト

サーバ

かなり遅れています。同じ問題が発生し、違いがあることがわかります。ローカルホストとタイムゾーンの個人サーバーphpinfoからスクリーンショットを投稿します。

私のローカルホストでは、date_default_timezone_set('[timezone]') は正しく動作しますが、サーバーでは常に UTC を返します。PHPドキュメントに基づいて、タイムゾーンがサーバーのphp iniに設定されていないように見えるため、以前に値が定義されていないため、タイムゾーン設定を無視した可能性があります。

init_set を使用して、タイムゾーンを使用できるようにします。タイムゾーンがphp iniで事前定義されていないことが原因だと思います。

于 2016-08-22T02:50:32.217 に答える