PHP如何创建公元元年之前(负年份)的有效DateTime实例
公元前(ACN)日期的PHP DateTime构造问题
前期检索情况
- 检索过ACN(公元前)日期相关的PHP处理问题,找到的结果仅覆盖三类公元纪年范围内的日期处理场景,无匹配自身需求的方案:
- 公元元年之后的日期处理
- 公元0-1000年区间的日期处理
- 公元0-1970年区间的日期处理
当前业务需求
- 需处理人员出生日期数据,其中存在大量出生于公元元年(Year 0)之前的记录
- 现有
\juliantojd和\jdtojulian函数无法满足要求,因为业务逻辑要求最终返回的结果必须为DateTime类型对象
已尝试方案与卡点
- 核心诉求:找到构造代表公元元年之前日期的有效
DateTime实例的实现方法 - 已尝试使用
\DateTime::createFromFormat方法,传入'c'格式或\DateTime::ISO8601格式作为第一参数,解析早于公元元年的日期 - 卡点:该方法解析后直接返回
false,无法生成有效实例
补充说明
- 曾参考同主题问题帖《PHP Datetime fail to convert negative ISO8601 date》,但对应解答未覆盖负年份的处理场景,无法适配需求
- 曾查阅PHP官方对应bug条目,条目内容可能对问题解决有参考价值,但目前还需要完成日期格式中分隔符从斜杠到短横线的转换工作,恳请提供可行的实现思路
内容的提问来源于stack exchange,提问作者Steve Defred
相关产品推荐
相关产品推荐

