わかりました、私は理解しています、私は完全なPHP記事を直接書き、必要に応じて無関係なコンテンツを追加し、水平線でテキストを分離します。これが記事の例です。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 正面には何もありません PHP コードの例</span></span><span>
</span><span><span class="hljs-variable">$dummyArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">range</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">shuffle</span></span><span>(</span><span><span class="hljs-variable">$dummyArray</span></span><span>);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$dummyArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$num</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"番号 <span class="hljs-subst">$num</span></span></span><span> 処理\n";
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"----------------------------------------\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
存在する Docker コンテナ環境で,使い方 timezone_version_get 関数検出 tzdata 正しくインストールされていますか?
存在する使用 PHP 建てる Docker コンテナの場合,時間関連関数の正確性はしばしば依存します tzdata バッグ(タイムゾーンデータベース)。もし tzdata 正しくインストールされていないか、欠落していません,原因となる可能性があります `</span><span><span class="hljs-title function_ invoke__">date</span></span><span>()`、`DateTime` 関連する関数はエラー時間を返します,ロギングに影響します、タイミングタスクとアプリケーションロジック。
幸運なことに,PHP 提供された `</span><span><span class="hljs-title function_ invoke__">timezone_version_get</span></span><span>()` 関数,電流を検出するために使用できます PHP 环境中タイムゾーンデータベース的版本,間接的な確認 tzdata 是否存存在する并正确加载。
</span><span><span class="hljs-comment">### 1. 診る tzdata インストール</span></span><span>
存在する PHP スクリプトで,次のコードを使用できます:
```php
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$tzVersion</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_version_get</span></span><span>();
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$tzVersion</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"当前タイムゾーンデータベース版本: "</span></span><span> . </span><span><span class="hljs-variable">$tzVersion</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"タイムゾーンデータベース未正确加载,请診る tzdata インストールするかどうか。\n"</span></span><span>;
}
</span></span>
バージョン番号が出力(たとえば、 2023.6 )の場合、TZDATAがインストールされ、利用可能であることを意味します。
空のエラーまたはエラーが返された場合、タイムゾーンデータベースがロードされておらず、Docker画像にインストールする必要があることを意味します。
DebianまたはUbuntuベースの画像の場合、DockerFileに追加できます。
<span>RUN apt-get update && apt-get install -y tzdata
</span>
アルパインミラーリングの場合:
<span>RUN apk add --no-cache tzdata
</span>
インストール後、画像を再構築し、 timezone_version_get()を介して再度検証することをお勧めします。
TZDATAが正しくインストールされていても、コンテナシステム設定に依存しないように、PHP構成のデフォルトタイムゾーンを指定することをお勧めします。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"現在の時刻: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span></span>
TimeZone_version_get()でTZDATAを検出することにより、Dockerコンテナのタイムゾーンデータベースが利用可能かどうかをすばやく確認できます。 TZDATAをDockerFileに正しくインストールし、PHPにデフォルトのタイムゾーンを設定することを組み合わせて、タイムゾーンの問題によって引き起こされるさまざまな時間エラーを回避し、アプリケーションの安定性を改善できます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"----------------------------------------\n"</span></span><span>;
</span><span><span class="hljs-comment">// 尾は無関係です PHP コードの例</span></span><span>
</span><span><span class="hljs-variable">$randomStr</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bin2hex</span></span><span>(</span><span><span class="hljs-title function_ invoke__">random_bytes</span></span><span>(</span><span><span class="hljs-number">4</span></span><span>));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"デバッグマーク: <span class="hljs-subst">$randomStr</span></span></span><span>\n";
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>