使用 Carbon 仅解析时间

Sav*_*ive 1 php time data-transfer-objects laravel

我的 DTO 类中有一个字段,它接受 start_time 和 end_time 作为“2:00 AM”

/**
 * @var string
 */
#[CastWith(TimeCaster::class)]
public string $start_time; // 01:00 AM example

/**
 * @var string
 */
#[CastWith(TimeCaster::class)]
public string $end_time;
Run Code Online (Sandbox Code Playgroud)

我可以在 Caster 类中使用 Carbon 解析这种时间格式吗

#[\Attribute] class TimeCaster implements Caster
{
    public function cast(mixed $value): mixed
    {
        return Carbon::parse($value)->format();
    }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*obo 5

我想你用Carbon::createFromFormat

Carbon::createFromFormat('H:i A','10:00 PM')->format('Y-m-d H:i:s)
Run Code Online (Sandbox Code Playgroud)

如果你只想使用时间戳来获取时间

Carbon::parse("2021-06-26 22:00:00")->format('g:i A')
Run Code Online (Sandbox Code Playgroud)