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
我希望用户可以选择 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