PHP 中的 RFC1123 和 RFC2822 日期时间格式有啥区别?
Posted
技术标签:
【中文标题】PHP 中的 RFC1123 和 RFC2822 日期时间格式有啥区别?【英文标题】:What is the difference between RFC1123 and RFC2822 DateTime formatting in PHP?PHP 中的 RFC1123 和 RFC2822 日期时间格式有什么区别? 【发布时间】:2012-09-16 03:43:47 【问题描述】:这是出于好奇,而不是因为我现在需要知道它,但在 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" ;
有什么线索吗?
【问题讨论】:
【参考方案1】:我认为原因是文档。日期格式可能相同,但它们在不同的文档中独立定义。说实话
const string COMMON_DATE_FORMAT_FOR_RFC1123_AND_2822 = "D, d M Y H:i:s O" ;
不会那么有用。
【讨论】:
【参考方案2】: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
day-name = "Mon" / "Tue" / "Wed" / "Thu" / “周五”/“周六”/“周日”
日期 = 日月年
年 = 4*DIGIT / obs-年
month = (FWS 月份-名称 FWS) / obs-month
月份名称=“一月”/“二月”/“三月”/“四月”/ “五月”/“六月”/“七月”/“八月”/ “九月”/“十月”/“十一月”/“十二月”
day = ([FWS] 1*2DIGIT) / obs-day
时间 = 一天中的 FWS 区域
时间 = 小时 ":" 分钟 [ ":" 秒 ]
小时 = 2DIGIT / obs-小时
分钟 = 2DIGIT / obs-分钟
秒 = 2DIGIT / obs-秒
zone = (( "+" / "-" ) 4DIGIT) / obs-zone
【讨论】:
另外值得注意的是:RFC1123 参考了 RFC822。 RFC2822 淘汰了 RFC822。 谢谢两位,满足好奇心!以上是关于PHP 中的 RFC1123 和 RFC2822 日期时间格式有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 python 中的 RFC 2822 邮件标头中提取多个电子邮件地址?
给定 [] 邮箱中的地址不符合 RFC 2822, 3.6.2。当电子邮件在变量中时