Laravel 5.2 - 计算我的 post 的过期日期

Laravel 5.2 - calculate expire date of my post

我希望用户可以选择 post 的过期时间,例如以创建 post 的形式,我将插入一个输入 select 选项:24h、48h , 72 小时。

我的问题是,我需要将到期日期存储在我的数据库中,我该如何计算它?

我知道我可以这样获取创建时间post:

查看 - 我的表单有这样的输入

<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')

我想创建一个值为到期日期 post 的变量,我需要存储此数据以便在我的索引列表中显示。

感谢您的支持!

您可以使用可以执行这样计算的 strtotime

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

另一种方法是添加秒数 "manually":

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

你可以在你的控制器上做类似的事情: 假设您的请求变量上有 Input::all()。

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

如您所见carbon doc

PHP DateTime class 会很高兴地这样做

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