#laravel #eloquent #laravel-8
Вопрос:
$product = Product::select('id', 'name', 'status',DB::raw('date('d-m-y') as dateCurrent' ))
->whereDate('status', 3)
->get()
->toArray();
Результат dateCurrent
нулевой :
Array
(
[0] => Array
(
[id] => 4
[name] => 'Iphone'
[dateCurrent] => null
)
[1] => Array
(
[id] => 5
[name] => 'samsung'
[dateCurrent] => null
)
)
Я хочу получить текущее время прямо в select. Есть ли какой-нибудь способ получить его? Спасибо
Комментарии:
1. Есть ли какие-либо проблемы, с которыми вы сталкиваетесь в этом коде?
2. Почему у вас есть даты в
(d-m-y)
и не в('Y-m-d')
?
Ответ №1:
date('d-m-y')
похоже на встроенную функцию php
, если вы хотите использовать время бд
, вы можете использовать функцию NOW ()
, и если вы используете время бд
$product = Product::select('id', 'name', 'status', DB::raw('NOW() AS dateCurrent'))
->whereDate('status', 3)
->get()
->toArray();
но вам нужно серверное время php
$product = Product::select(
'id', 'name',
'status', DB::raw(sprintf('%s AS dateCurrent', date('d-m-y'))))
->whereDate('status', 3)
->get()
->toArray();
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_now