BRST指的是“巴西利亚夏令时”
在版本7.0.26之前,PHP可以毫无问题地解析此字符串:
$date = DateTime("Mon Jan 01 20:00:00 BRST 2017");
在该版本之后,PHP返回:
Fatal error: Uncaught Exception: DateTime::__construct(): Failed to
parse time string (Mon Jan 01 20:00:00 BRST 2017) at position 4 (J):
The timezone could not be found in the database in /in/c6K56:5
Stack trace:
#0 /in/c6K56(5): DateTime->__construct('Mon Jan 01 20:0...')
#1 {main}
thrown in /in/c6K56 on line 5
Process exited with code 255.
我搜索了更改日志,但我找不到任何解释。
以下是示例:
答案 0 :(得分:5)
您可以在this commit中看到timezonemap.h
文件已更新,以删除对brst
的引用以及许多其他缩写。
提交消息显示为:
更新timezonemap.h,需要匹配捆绑的TZ db
深入挖掘(感谢@JamesThorpe)您可以看到Paul Eggert的缩写为introduced in July 1999。值得注意的是,他声称自己发明了这些:
2016年12月我发明了英语缩写,我还发明了其他行与-3:00行一致。
This tz commit(再次由Eggert)删除缩写并用以下文字替换它们:
这些表使用数字缩写(如-03和-0330)表示整数小时和分钟UTC偏移。虽然早期版本使用字母时区缩写,但这些缩写是发明的,并不反映常见的做法。