如何在Laravel

时间:2016-02-06 19:26:24

标签: php laravel-5 php-carbon

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

例如。

$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');

2 个答案:

答案 0 :(得分:1)

如果你愿意使用createFromFormat而不是你必须在第二个参数中输入这样的字符串:

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

答案 1 :(得分:0)

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);