Как добавить минуты к дате в laravel - PullRequest
0 голосов
/ 25 сентября 2018

Есть несколько способов, которыми я могу сделать это с помощью PHP, но я не смог найти способ сделать это, используя специфический для laravel способ.

У меня есть время, которое приходит из базы данных в следующем формате: Y:M:s

ex: 05:15:00

Вот что я хочу сделать:

добавить 30 минут к этой дате, в соответствии с приведенным выше примером результатадолжно быть: 05:45:00

Ниже приведен мой текущий код, и я хочу добавить 30 минут к $endTime:

//get database value according to selected date
$allocatedDateQuery = DB::table('appointments')->where('date', $request->date)->get();

//loop throug every record to get time
foreach ($allocatedDateQuery as $value) {
    $time = $value->time;
    $endTime = $time;
}

Ответы [ 3 ]

0 голосов
/ 25 сентября 2018

Я только что получил идеальное решение отсюда .

Используйте Углерод расширение, чтобы просто достичь этого.

То, что вам нужно сделать, этоparse ваше время для Carbon объекта, а затем вы можете использовать addMinutes() для этого, а затем вы можете format(), если хотите:

foreach ($allocatedDateQuery as $value) {
    $time = Carbon::parse($value->time);
    $endTime = $time->addMinutes(30);
    $allocateValidateMessage .= Carbon::parse($value->time)->format('H:i') . ' - ' . $endTime->format('H:i') . '  ';
}
0 голосов
/ 25 сентября 2018

Поскольку вы сказали, что извлекаете дату из базы данных, я предполагаю, что вы также используете Eloquent для запроса из базы данных.

Вы можете использовать Eloquent Mutator Method в вашей модальной базе данныхКласс для изменения данных следующим образом:

    public function getAppointmentsAttribute($value) {
        return Date("Y:M:s", strtotime("30 minutes", strtotime($value->time)));
    }

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

0 голосов
/ 25 сентября 2018

Обычно я использую дату php , вы можете попробовать

Date("Y:M:s", strtotime("30 minutes", strtotime($value->time))

, которая преобразует ваше время в строку, добавляет к ней 30 минут и преобразует ее в формат датыпо вашему желанию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...