Хранить временную метку со временем 00:00:00

Я хочу сохранить отметку времени в базе данных с компонентом времени как 00:00:00,
Следующий код:

$start_date = Carbon::createFromFormat('d-m-Y', $date_interval["start_date"]);
$end_date = Carbon::createFromFormat('d-m-Y', $date_interval["end_date"]);

добавляет текущее время к дате, когда я предоставляю дату только без указания времени.
Мне это нужно, потому что мне нужно потом извлечь внутреннее целое число из базы данных, что должно стать началом дня.

Каков наилучший способ сохранить это «начало дня»?

7

Решение

Я обычно устанавливаю дату звонка, а затем сбрасываю время на 00:00 с

Carbon::setTime(0, 0, 0);  // from the parent, DateTime class

В классе также есть метод Carbon :: startOfDay (), который установит соответствующие значения.

public function startOfDay()
{
return $this->hour(0)->minute(0)->second(0);
}
10

Другие решения

Для безопасности просто позвольте Carbon определить конец или начало дня, используя ->endOfDay() или же ->startOfDay(), Выберите то, что подходит вам больше.

Carbon::createFromFormat('d-m-Y', $date_interval["start_date"])->endOfDay();
Carbon::createFromFormat('d-m-Y', $date_interval["start_date"])->startOfDay();
9

Ты не должен этого делать.

установить свой start_date DATE NULL DEFAULT NULL`

Вы должны позволить MySQL по умолчанию NULL не 0000-00-00

0
По вопросам рекламы [email protected]