<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Some PHP code examples unrelated to the article content</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">exampleFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"This is an example function, unrelated to the article topic."</span></span><span>;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">exampleFunction</span></span><span>();
<p></span>?></p>
<p><hr></p>
<p><h1>Why <code>date_default_timezone_get<span>()
After making changes, restart your web server or PHP-FPM.
Even if the php.ini has a timezone configured, in some environments or during script execution, the timezone may be reset or ignored. It is recommended to explicitly call at the start of the script:
</span><span><span class="function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span>'Asia/Shanghai'</span></span><span>);
This ensures that the current script uses your expected timezone and does not rely solely on environment configuration.
Different PHP versions or SAPIs (such as CLI, FPM, Apache module) may handle default timezone retrieval differently. For example, the command-line mode is more likely to default to UTC, while the web server mode depends on configuration.
It is recommended to test date_default_timezone_get() both from the command line and in a web page to ensure consistent behavior.
Certain operating system environment variables (like TZ) can affect PHP’s timezone detection. If the system or web server environment variable is set to UTC, PHP may default to UTC as well.
You can check the environment variable by:
</span><span><span>echo</span></span><span> </span><span><span class="function_ invoke__">getenv</span></span><span>(</span><span><span>'TZ'</span></span><span>);
If it shows UTC, consider adjusting the environment variable or explicitly setting the timezone in your PHP script.
PHP relies on the system or built-in timezone database to recognize timezone names. If the database is incomplete or corrupted, PHP may fail to parse the configured timezone and fall back to UTC.
Solutions include updating the operating system’s timezone packages or reinstalling PHP.
When you find that date_default_timezone_get() returns UTC instead of your expected local timezone, first check the php.ini configuration to ensure date.timezone is correctly set; then explicitly set the timezone in your code; also verify whether your runtime environment and server configuration affect the timezone. Understanding these causes helps you avoid timezone confusion and ensures accurate time-related operations.