Home  >  Article  >  Backend Development  >  How to solve the problem of getting time error in php time function

How to solve the problem of getting time error in php time function

藏色散人
藏色散人Original
2021-09-18 10:20:383066browse

Solution to the time error obtained by the php time function: 1. Set the default time zone to be used; 2. Open php.ini to find "date.timezone" and remove the preceding semicolon; 3. In the program Just add a time initialization statement.

How to solve the problem of getting time error in php time function

The operating environment of this article: Windows 7 system, PHP version 7.1, Dell G3 computer

How to solve the time error in the php time function question?

The solution to the error in using the date function to obtain the current time in PHP

I am new to PHP and want to get the current time on the page. I have learned programming. Everyone knows to use the time function date(). First use this function to format a local time/date. Let’s write a test code first. The output time is 8 hours less than the actual time. What is the reason for this:

The code is as follows:

<?php 
    echo date(&#39;Y-m-d H:i:s&#39;);

Output current time: 2008-10-12 02:32:17
Strange, the actual time is: 2008-10-12 10:32:17

Could it be that PHP's date() time is incorrect and is less than 8 hours?
Look again at the "Example 1. date() example" in the PHP manual. There is one more time zone setting in the first line
// Set the default time zone to be used. Available since PHP 5.1
date_default_timezone_set('UTC');

It turns out that starting from php5.1., the date.timezone option was added to php.ini, which is turned off by default. That is, the time displayed (no matter what php command is used) is Greenwich Mean Time, which is exactly 8 hours different from Beijing time.

How to set the correct PHP time?

1. Modify php.ini. Open php.ini and search for date.timezone. Remove the semicolon = in front and add Asia/Shanghai at the end. Just restart the apache server - the disadvantage is that if the program
is placed on someone else's server, php cannot be modified. .ini, then there is nothing you can do.

2. Add the time initialization statement in the program That is: "date_default_timezone_set("Asia/Shanghai"); "This can be set arbitrarily by the programmer ,My recommendation.
Time zone identifier, available values ​​in mainland China are: PRC, Asia/Chongqing, Asia/Shanghai, Asia/Urumqi (in order China, Chongqing, Shanghai, Urumqi), Etc/GMT-8, Asia/Harbin

Available in Hong Kong and Taiwan: Asia/Macao, Asia/Hong_Kong, Asia/Taipei (Macau, Hong Kong, Taipei in order) and Singapore: Asia/Singapore
In this way, the output is Beijing time.

More detailed time zone codes, time zone codes, time zone index codes, timezone_identifier, can be found on the official website.

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of How to solve the problem of getting time error in php time function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn