Home > Backend Development > PHP Tutorial > The difference between date and gmdate in PHP and the default time zone setting_PHP tutorial

The difference between date and gmdate in PHP and the default time zone setting_PHP tutorial

WBOY
Release: 2016-07-13 10:29:53
Original
801 people have browsed it

1. What is the difference between date and gmdate?

There are two formatting functions in the PHP time function: date() and gmdate(). The description in the official document is:

Copy Code The code is as follows:
date() #— Format a local time/date
gmdate() #— Format a GMT/UTC date/time, return Green U.K. Standard Time (GMT).

Let’s take an example first. Our current time zone is +8, so the time returned by the server running the following script should be like this:
The current time is assumed to be 2013-03-14 12:15: 27
Copy code The code is as follows:
echo date('Y-m-d H:i:s'); #with date('Y-m-d H :i:s' time()); Equivalent, the output is: 2007-03-14 12:15:27
echo gmdate('Y-m-d H:i:s'); #With gmdate('Y-m-d H: i:s' time());The output is: 2007-03-14 04:15:27

But this is only the result of running PHP under Linux+Apache. If it is run under Windows, then 2 Each function returns: 2013-03-14 04:15:27.
So, we should give a compatible writing method, use gmdate uniformly, and manually set the current time zone. The writing method is improved as follows:
Copy the code The code is as follows :
echo gmdate('Y-m-d H:i:s', time() + 3600 * 8);

This way, the correct result is obtained whether under Linux+Apache or Windows , of course, there is another advantage to writing like this. When the website is open to the whole world, then the website user only needs to set the time zone, and the program automatically calculates the time based on the time zone set by the user. Only the current time() is stored in the database for the information release time. The generated time, then the release time seen by users in China +8 time zone is: 2007-03-14 12:15:27, then the release time seen by users in Europe +2 time zone is: 2007-03-14 06:15:27, so that all the times of the information correspond correctly.

2. Will changing the default time zone of PHP affect it?

Each region has its own local time. On the Internet and in radio communications, the problem of time conversion is particularly prominent. The entire earth is divided into twenty-four time zones, each with its own local time. In international radio or network communication situations, for the sake of unification, a unified time is used, called Universal Time Coordinated (UTC), which is a global standard time set by the world time standard. UTC was originally also known as Greenwich Mean Time (GMT, Greenwich Mean Time), which is the same as the local time in London, UK.

The default time zone setting of PHP is UTC time, and Beijing is located in the East Eighth District of the time zone, eight hours ahead of UTC. Therefore, when using functions such as time() in PHP to obtain the current time, the time obtained is always wrong, showing that it is eight hours different from Beijing time. If you want to display Beijing time correctly, you need to modify the default time zone settings, which can be done in the following two ways.

If you are using an independent server and have permission to modify the configuration file, setting the time zone can be completed by modifying the date.timezone attribute in php.ini. We can set the value of this attribute to one of "Asia/Shang", "Asia/Chongqing", "Etc/GMT-8" or PRC, etc., and then the current time obtained in the PHP script is Beijing time. Modify the PHP configuration file as follows:

Copy the code The code is as follows:
date.timezone = Etc/GMT-8
//Set the default time zone in the configuration file to East 8 District (Beijing time)
If you are using a shared server/virtual hosting space and do not have permission to modify the configuration file php.ini, and the PHP version is above 5.1.0, you can also call the date_default_timezone_set() function to set the time zone before outputting the time. This function needs to provide a time zone identifier as a parameter, which is the same as the value of the date.timezone attribute in the configuration file. The use of this function is as follows:


Copy code The code is as follows:
date_default_timezone_set('PRC'); Set the time zone before outputting the time. PRC is the People's Republic of China echo date('Y-m-d H:i:s', time());

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/769237.htmlTechArticle1. What is the difference between date and gmdate? There are two formatting functions in the PHP time function: date() and gmdate(). The description in the official document is: Copy the code as follows: date() #— grid...
Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template