The date/time format used in HTTP headers

前端 未结 4 1386
甜味超标
甜味超标 2021-02-02 05:58

Which RFC describes the format used for date/time in the modern time HTTP headers, like \"Last-Modified\" and \"If-Modified-Since\", and how to generate a date/time string in PH

4条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2021-02-02 06:04

    Well, let's have a look at RFC 2616 which defines HTTP 1.1: http://tools.ietf.org/html/rfc2616#section-3.3

    HTTP applications have historically allowed three different formats for the representation of date/time stamps:

     Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
     Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
     Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format
    

    The first format is preferred as an Internet standard and represents a fixed-length subset of that defined by RFC 1123 [8] (an update to RFC 822 [9]).

    (...)

    All HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT), without exception.

    So DateTime::COOKIE or Datetime::RFC850 use a valid format. The preferred one according to the RFC would be D, d M Y H:i:s T which is not defined by any constant in the DateTime class.

    To make sure that GMT is used, the following code should suffice:

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

提交回复
热议问题