Home > Backend Development > PHP Tutorial > Safe method to output English time and date in PHP (RFC 1123 format)_PHP tutorial

Safe method to output English time and date in PHP (RFC 1123 format)_PHP tutorial

WBOY
Release: 2016-07-13 10:28:14
Original
1035 people have browsed it

In a recent project, I need to write a client for a REST service. The signature verification needs to generate a Date in RFC 1123 format in the HTTP Header.

This problem is relatively easy to solve. Simply read the PHP documentation and use the gmstrftime function to solve it.

Copy code The code is as follows:

string gmstrftime ( string $format [, int $timestamp = time() ] )

The calling code is as follows:
Copy codeThe code is as follows:

echo gmstrftime("%a, % d %b %Y %T %Z",time());
//Output: Tue, 01 Apr 2014 16:16:07 GMT

During the debugging process, it was found that on another computer On, the output is not as expected, and then produces Chinese:
Copy the code The code is as follows:

2, 01 4 2014 16:20:02 GMT

Continuing to read the document, I found that there is a description in the comments of the document that the result of this function is affected by the setlocale result, which is affected by the current system default language. Use the following command to view the languages ​​installed on the current system:
Copy the code The code is as follows:

locale -a

Then based on the results just analyzed, it will be no problem to force setlocale to English. The code is as follows:
Copy the code The code is as follows:

setlocale(LC_TIME, 'en_US');
echo gmstrftime("%a, %d %b %Y %T %Z",time());

That’s it The article should be over, but unfortunately, on the Ubuntu machine used for testing, because it is the Live CD version, there happens to be no en_US language, but there is en_US.UTF-8. At this time, I thought that this approach seemed unsafe. I couldn't determine whether there was en_US or en_US.UTF-8 on the client computer running the code. Fortunately, I saw a comment in the document, which can be replaced by gmdate. This function is not affected by the setlocale result:
Copy the code The code is as follows:

gmdate('D, d M Y H:i:s') . ' GMT';

Case closed~ Although the requirements are small, it is not easy to write well, and we will have to work harder in the future.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/802222.htmlTechArticleIn a recent project, I need to write a client for a rest service, and the signature verification needs to generate a HTTP Header Date in RFC 1123 format. This problem is relatively easy to solve. I simply read PH...
Related labels:
php
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