2016-10-17 7 views
0

Мне хотелось бы, чтобы этот пользователь мог выбрать истечение срока публикации, например, в форме создания сообщения. Я вставлю вариант выбора ввода с помощью: 24h, 48h, 72h.Laravel 5.2 - рассчитать дату окончания моего сообщения

Мой вопрос, мне нужно сохранить дату истечения срока действия в моей базе данных, как я могу рассчитать его?

Я знаю, что я могу получить время создания поста, как это:

VIEW - Моя форма имеет вход как этот

<select name="expire_date"> 
<option value="24">24h</option> 
<option value="48">48h</option> 
<option value="72">72h</option> 
</select> 

МОЙ CONTROLLER

// get the current time 
    $current = Carbon::now(); 
    $current = new Carbon(); 
    // maybe so ?? 
    $expire_date = $current + $request->input('expire_date') 

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

Благодарим вас за поддержку!

ответ

1

Вы можете сделать что-то подобное на контроллере: если у вас есть вход :: все() на переменную запроса ,

$expire_date = Carbon::now()->addHours($request->expire_date); 

, как вы можете видеть на carbon doc

+1

да это работает! Спасибо вам за все! –

+0

Добро пожаловать, рад, что это помогло! –

1

Вы можете использовать strtotime, который может выполнять вычисления следующим образом.

$expire_date = strtotime('+ '.$request->input('expire_date').' hours'); 

Другой подход должен был бы добавить секунды «вручную»:

$expire_date = time() + $request->input('expire_date') * 3600; 
1

Класс PHP DateTime будет делать это вполне счастливо, как этот

//example input parameter 
$param = '24h'; 
// fix param, to upper case i.e. 24H 
$param = strtoupper($param); 

$date = new DateTime(); 
echo $date->format('Y-m-d H:i:s').PHP_EOL; 
$date->add(new DateInterval("PT$param")); 
echo $date->format('Y-m-d H:i:s'); 

Результат:

2016-10-17 19:58:56 
2016-10-18 19:58:56