Laravel - формат даты из базы данных mysql с углеродом - PullRequest
0 голосов
/ 03 мая 2018

В моем проекте Laravel у меня есть база данных My SQL со следующим столбцом:

 |   requested_at  |
 2018-02-03 12:00:00
 2018-03-03 11:00:00

Я хочу получить все элементы из этого столбца, где отметка времени (required_at) старше 60 дней:

$now = Carbon::now ();  

$60days  = DB::table('exampletable')->where('requested_at', '=', $now->subDays(60))->get();

Для следующего кода мне нужно отформатировать формат даты из моего столбца requested at. Я только хочу получить дату как это 2018-03-03 без времени.

Я играю с некоторыми методами углерода, но это не сработало совсем:

$format60 = Carbon::createFromFormat('Y-m-d', $60days);

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Кажется, вы используете тип TIMESTAMP, поэтому

->where('requested_at', '<=', now()->subDays(60)->startOfDay())->get();

Как видите, нет необходимости форматировать Carbon экземпляр.

Разбей все это:

now() // Laravel helper to get Carbon::now()
->subDays(60) // subtract 60 days
->startOfDay() // set time part of timestamp to start of the day

Примечание : добавьте requested_at в массив $dates в вашей модели для более легкого использования

0 голосов
/ 03 мая 2018

Вы можете достичь этого только с помощью mysql, без необходимости в углероде.
Просто используя datediff() и now() из mysql.
Делай как это

$days60  = DB::table('exampletable')
    ->whereRaw('datediff(now(),requested_at) = 60')
    ->get();

Пример: - enter image description here

...