2016-10-17 4 views
0

그 사용자가 게시물의 만료를 선택할 수 있기를 바랍니다. 예를 들어, 작성 게시물의 형식으로 입력 선택 옵션을 삽입합니다 : 24h, 48h, 72h.Laravel 5.2 - 내 게시물의 만료 날짜를 계산하십시오.

내 질문에, 내 데이터베이스에 만료 날짜를 저장해야합니다, 어떻게 계산할 수 있습니까?

나는 내가이 같은 창조 포스트의 시간을 얻을 수 있다는 사실을 알고 :

보기 - 내 양식이

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

같은 입력 내 컨트롤러가

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

내가 좋아하는 것이 expire date post의 값을 가진 변수를 만들면, 내 인덱스 목록에 표시 할 수 있도록이 데이터를 저장해야합니다.

감사합니다.

답변

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 날짜 시간 클래스는이

//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