【问题标题】:Laravel 5.2 - calculate expire date of my postLaravel 5.2 - 计算我的帖子的过期日期
【发布时间】:2016-10-17 19:44:27
【问题描述】:

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

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

我知道我可以像这样获得创建时间:

VIEW - 我的表单有这样的输入

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

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

感谢您的支持!

【问题讨论】:

    标签: php laravel laravel-5.2 php-carbon


    【解决方案1】:

    您可以在控制器上执行类似的操作: 假设您的请求变量上有 Input::all()。

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

    正如您在 carbon doc 上看到的那样

    【讨论】:

      【解决方案2】:

      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
      

      【讨论】:

        【解决方案3】:

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

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

        另一种方法是“手动”添加秒数:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-05
          • 1970-01-01
          • 2016-11-28
          • 2017-08-20
          • 2014-11-27
          • 1970-01-01
          • 2022-10-17
          • 1970-01-01
          相关资源
          最近更新 更多