首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >碳零日期

碳零日期
EN

Stack Overflow用户
提问于 2016-07-19 15:19:39
回答 1查看 1.9K关注 0票数 3

我有一些需要解析的静态文本文件。

在这些文件中,我有格式为YmdYmYmdHis甚至His的日期,但我可以管理这些日期。

问题(来自artisan tinker的输出):

代码语言:javascript
复制
>>> $date = \Carbon\Carbon::createFromFormat('Ymd', '20160415', 'UTC')
=> Carbon\Carbon {#1315
     +"date": "2016-04-15 15:00:22.000000",
     +"timezone_type": 3,
     +"timezone": "UTC",
   }
>>> $date->format('Ymd')
=> "20160415"

>>> $date = \Carbon\Carbon::createFromFormat('Ymd', '00000000', 'UTC')
=> Carbon\Carbon {#1076
     +"date": "-0001-11-30 15:00:31.000000",
     +"timezone_type": 3,
     +"timezone": "UTC",
   }
>>> $date->format('Ymd')
=> "-00011130"

当日期是一个适当的日期(示例中是2016-04-14)时,一切都很好,但是当我得到一个零日期并将它传递给Carbon时,它会更改为 -1的11月30日。

有没有办法教Carbon在这种情况下如何表现?

EN

回答 1

Stack Overflow用户

发布于 2020-03-26 08:35:35

您必须检查日期是否大于最小日期(Carbon::minValue()),并在必要时加以更正(例如,使其等于最小日期或可能将其设置为“从不”)。

代码语言:javascript
复制
>>> $date = \Carbon\Carbon::createFromFormat('Ymd', '00000000', 'UTC');
=> Carbon\Carbon @-62169953296 {#3106
     date: -0001-11-30 08:31:44.0 UTC (+00:00),
     timezone: "UTC",
   }
>>> if ($date < \Carbon\Carbon::minValue()) $date = \Carbon\Carbon::minValue();
=> Carbon\Carbon @-62135601840 {#3125
     date: 0001-01-01 00:00:00.0 Europe/Warsaw (+01:24),
     timezone: "Europe/Warsaw",
   }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38462542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档