如何在 Laravel 中创建 Carbon 日期

How to create a Carbon date in Laravel

如果我有以下格式的日期部分 'd M Y' 并且我在单独的变量中有小时和分钟作为整数,你如何创建 Carbon 日期。

例如。

$this->start_dt  = '06 Feb 2016'
$this->start_hr  = '12'
$this->start_min  = '00'

目前我不得不这样做,但它最终也会增加当前秒数。

Carbon::createFromFormat('d M Y', $this->start_dt)->hour($this->start_hr)->minute($this->start_min);

结果2016-02-06 12:00:44

是否有更简洁的方法来创建碳日期,而无需链接小时和分钟并将秒设置为 00?

也许是这样的,但它不起作用:

Carbon::createFromFormat('d M Y H:i', $this->start_dt, $this->start_hr, $this->start_min);

* 更新 *

设法弄清楚:

 Carbon::createFromFormat('d M Y H:i:s', $this->start_dt . ' ' . $this->start_hr . ':'. $this->start_min . ':00');

如果您愿意使用 createFromFormat,那么您必须像这样将第二个参数输入为字符串:

$dt=Carbon\Carbon::createFromFormat('d M Y H:i', $this->start_dt.' '.$this->start_hr.':'.$this->start_min);

Documentation: Instantiation

Carbon::createFromDate($year, $month, $day, $tz);
Carbon::createFromTime($hour, $minute, $second, $tz);
Carbon::create($year, $month, $day, $hour, $minute, $second, $tz);

Documentation: Fluent setters

$dt->year(1975)->month(5)->day(21)->hour(22)->minute(32)->second(5)->toDateTimeString();
$dt->setDate(1975, 5, 21)->setTime(22, 32, 5)->toDateTimeString();
$dt->setDateTime(1975, 5, 21, 22, 32, 5)->toDateTimeString();

解决方案:

Carbon::createFromFormat('d M Y', $this->start_dt)
    ->setTime($this->start_hr, $this->start_min);