9

这是出于好奇,而不是因为我现在需要知道它,但是在 PHP 手册中,它们是相同的;我看不出同一事物有两种不同数据格式的原因。

http://php.net/manual/en/class.datetime.php

const string RFC1123 = "D, d M Y H:i:s O" ;
const string RFC2822 = "D, d M Y H:i:s O" ;

有什么线索吗?

4

2 回答 2

22

RFC1123是“Internet 主机要求 - 应用程序和支持”,1989 年 10 月

RFC2822是“Internet 消息格式”,2001 年 4 月

RFC1123视为 RFC2822 的父。它引用RFC2822作为日期/时间的适当规范,如下所示:

3.3. 日期和时间规范

日期和时间出现在几个标题字段中。本节指定完整日期和时间规范的语法。尽管在整个日期时间规范中允许折叠空格,但建议在 FWS 出现的每个位置使用单个空格(无论是必需的还是可选的);一些较旧的实现可能无法正确解释其他出现的折叠空白。

date-time = [ day-of-week "," ] 日期 FWS 时间 [CFWS]

day-of-week = ([FWS] day-name) / obs-day-of-week

日期名称 = “周一”/“周二”/“周三”/“周四”/“周五”/“周六”/“周日”

日期 = 日月年

年 = 4*DIGIT / obs-年

月份 = (FWS 月份名称 FWS) / obs 月份

月份名称=“一月”/“二月”/“三月”/“四月”/“五月”/“六月”/“七月”/“八月”/“九月”/“十月”/“十一月”/“十二月” "

day = ([FWS] 1*2DIGIT) / obs-day

时间 = 一天中的时间 FWS 区域

时间 = 小时 ":" 分钟 [ ":" 秒 ]

小时 = 2DIGIT / obs-小时

分钟 = 2DIGIT / obs-分钟

秒 = 2DIGIT / obs-秒

zone = (( "+" / "-" ) 4DIGIT) / obs-zone

于 2012-09-24T16:35:02.840 回答
1

我认为原因是文档。日期格式可能相同,但它们在不同的文档中独立定义。老实说

const string COMMON_DATE_FORMAT_FOR_RFC1123_AND_2822 = "D, d M Y H:i:s O" ;

不会那么有用。

于 2012-09-24T16:34:39.047 回答