如何获取由 Carbon::parse() 解析日期时间字符串的格式说明符
Posted
技术标签:
【中文标题】如何获取由 Carbon::parse() 解析日期时间字符串的格式说明符【英文标题】:How to get format specifiers in which a datetime string is parsed by Carbon::parse() 【发布时间】:2019-01-18 14:04:30 【问题描述】:在 Carbon php 中,我们有一个解析字符串的方法。如果字符串是有效的日期字符串,那么我将被解析为有效的 Carbon 对象。我很想知道是否有任何方法可以获得php确定日期的可能格式字符串。例如:
Carbon::parse("01 January, 2018");
然后我们会得到一个有效的碳对象。 我的问题是,我们是否可以得到“d F,Y”,这是 php 自动猜测的实际格式说明符。
【问题讨论】:
【参考方案1】:方法parse
总是返回一个Carbon\Carbon
的实例。所以你应该在之前验证你的字符串:
Validator::make(
['date_value' => $date],
['date_value' => 'date']
)->validate();
Carbon::parse($date);
或改用createFromFormat
方法:
if (Carbon::createFromFormat('d F, Y', $stringVariable) !== false)
// valid date
【讨论】:
感谢您的努力,但我要求的是,获取可以将日期字符串解析为的日期字符串的格式说明符。例如:对于像“2018 年 1 月 1 日”这样的日期字符串,如果可能的话,我想要“d F, Y”作为回报。 @AmiNirob 啊,抱歉,误会了。我认为使用Carbon
是不可能知道的。您必须寻找任何其他库或实现自定义实现
不,有问题。没关系 :)。我可以请教一下其他图书馆吗?【参考方案2】:
Carbon
扩展了 PHP DateTime
类。 Carbon::parse
方法最终将输入传递给 DateTime::__construct
,它会按照 PHP 手册 Supported Date and Time Formats 中的描述对其进行解析。
【讨论】:
以上是关于如何获取由 Carbon::parse() 解析日期时间字符串的格式说明符的主要内容,如果未能解决你的问题,请参考以下文章