Laravel 5.2 - 计算我的帖子的到期日期

时间:2016-10-17 19:44:27

标签: php laravel laravel-5.2 php-carbon

我希望用户可以选择帖子的过期,例如以创建帖子的形式我将插入输入选择选项: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的变量,我需要存储这些数据,以便我可以在我的索引列表中显示。

感谢您的支持!

3 个答案:

答案 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