是否有我可以传递给 PHP 中的 Carbon::parse() 的可能的相对日期格式列表?

问题描述 投票:0回答:1

Carbon::parse() 接受相对日期字符串,例如“下个月的第一天”。我的团队成员希望在 VueJS / Laravel 应用程序中为此添加一个输入字段,但我担心验证。

事实证明,所有这些字符串都被 Carbon 解析而没有抛出错误:

  • '下个月的第一天'
  • “下周的第一天”
  • '明年的第一天'

但是,后两者给出的结果不正确,前提是撰写本文时的日期是 2023 年 10 月 26 日:

  • “下个月的第一天”:2023-11-01(正确)
  • “下周的第一天”:2023-09-01(不正确)
  • “明年的第一天”:2023-10-01(错误)

我如何提前知道支持哪些格式并实际工作而不给出错误的结果?

我搜索了文档,其中指出:

传递给Carbon::parse或new Carbon的字符串可以表示相对时间(下周日、明天、下个月第一天、去年)或绝对时间(2008年12月第一天,2017-01-06) 。您可以使用 Carbon::hasRelativeKeywords() 测试字符串是否会生成相对或绝对日期。

这些是唯一的可能性还是还有更多?

我问了ChatGPT,它知道“明年的第一天”行不通,但它无法向我提供信息来源。它说了一些关于“常识”的事情......

php php-carbon
1个回答
0
投票

使用

Carbon::parse()
时,您可以提供各种日期格式来解析日期字符串。

以下是您可以传递给

Carbon::parse()
的相对日期格式的一些示例:

  1. tomorrow
  2. next Thursday
  3. last Monday
  4. first day of next month
  5. 3 days ago
  6. +2 weeks
  7. next week Tuesday
  8. now

您可以使用

tomorrow
next
last
ago
等术语来指定相对日期,并且可以将它们与日、周、月或其他时间单位结合使用。

示例:

$date = Carbon::parse('next Wednesday');
echo $date->toDateString(); // Outputs the date of the next Wednesday
© www.soinside.com 2019 - 2024. All rights reserved.