碳零日期



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

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

问题(artisan tinker输出):

>>> $date = CarbonCarbon::createFromFormat('Ymd', '20160415', 'UTC')
=> CarbonCarbon {#1315
     +"date": "2016-04-15 15:00:22.000000",
     +"timezone_type": 3,
     +"timezone": "UTC",
   }
>>> $date->format('Ymd')
=> "20160415"
>>> $date = CarbonCarbon::createFromFormat('Ymd', '00000000', 'UTC')
=> CarbonCarbon {#1076
     +"date": "-0001-11-30 15:00:31.000000",
     +"timezone_type": 3,
     +"timezone": "UTC",
   }
>>> $date->format('Ymd')
=> "-00011130"

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

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

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

>>> $date = CarbonCarbon::createFromFormat('Ymd', '00000000', 'UTC');
=> CarbonCarbon @-62169953296 {#3106
     date: -0001-11-30 08:31:44.0 UTC (+00:00),
     timezone: "UTC",
   }
>>> if ($date < CarbonCarbon::minValue()) $date = CarbonCarbon::minValue();
=> CarbonCarbon @-62135601840 {#3125
     date: 0001-01-01 00:00:00.0 Europe/Warsaw (+01:24),
     timezone: "Europe/Warsaw",
   }

相关内容

  • 没有找到相关文章

最新更新