我希望用户可以选择帖子的过期,例如以创建帖子的形式我将插入输入选择选项:24h,48h,72h。
我的问题,我需要在我的数据库中存储过期日期,我该如何计算?
我知道我可以像这样获得创作时间:
视图 - 我的表单有这样的输入
<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的变量,我需要存储这些数据,以便我可以在我的索引列表中显示。
感谢您的支持!
答案 0 :(得分:1)
您可以使用可以执行此类计算的strtotime。
<row>
<USER_ID>4</USER_ID>
<USER_NAME>OS</USER_NAME>
<EMAIL>example@gmail.com</EMAIL>
<PASSWORD>7515464</PASSWORD>
<USER_TYPE>3</USER_TYPE>
</row>
<row>
<USER_ID>2</USER_ID>
<USER_NAME>OS</USER_NAME>
<EMAIL>example1@gmail.com</EMAIL>
<PASSWORD>7515464</PASSWORD>
<USER_TYPE>3</USER_TYPE>
</row>
另一种方法是“手动”添加秒数:
$expire_date = strtotime('+ '.$request->input('expire_date').' hours');
答案 1 :(得分:1)
您可以在控制器上执行类似的操作: 假设您的请求变量上有Input :: all()。
$expire_date = Carbon::now()->addHours($request->expire_date);
你可以在carbon doc 看到
答案 2 :(得分: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