如何在Laravel 5中以时间格式节省数据库中的时间?

时间:2016-05-25 05:16:43

标签: laravel-5.2

我一直试图用10:00:00等时间格式在我的数据库中节省时间。

我想要的只是从timepicker获取时间并在data(time)中保存timeformat

这就是我所做的:

  • 我使用了timepicker,因为它以10:52 AM格式获取数据。

  • 我使用了访问器方法来节省时间,如下所示:

    public function setRTimeAttribute($value)
    {
        $this->attributes['r_time'] = date('h:i:A', strtotime($value));
    }
    
  • 我的帖子控制器需要如下:

    public function postSessionReservation(Request $request,$profile_slug)
    {
        $restaurant = Restaurant::where('slug_profile', $profile_slug)->select('name','ar_name','slug_profile','id')->firstOrFail();
    
        $this->validate($request,[
            'no_of_seats'=>'required',
            'r_date'=>'required',
            'r_time'=>'required',
            'restaurant_id'=>'required',
        ]);
        $data = [
            'no_of_seats'=>$request->no_of_seats,
            'r_date'=>$request->r_date,
            'r_time'=>$request->r_time,
            'restaurant_id'=>$request->restaurant_id
        ];
        $minutes = 1;
    
        Session::put('reservation',json_encode($data),$minutes);
    
        return redirect($restaurant->slug_profile.'/complete-reservation');
    }
    

但每次都会将时间节省为12:00:00

每当我节省时间时,我不知道12:00:00是如何生成的。我试了很多但是想不出来。

希望你们能帮我解决这个问题。

提前致谢。

1 个答案:

答案 0 :(得分:3)

首先在时间“10:52 AM”到“10:52 AM”之间删除空格,然后将您的行更改为此

$this->attributes['r_time'] = date("h:i", strtotime( $value ));

这肯定有助于我测试它。

例如,您可以通过

删除空格
$a = '10 : 52 PM';
$x = preg_replace('/\s*:\s*/', ':', $a);
date("H:i", strtotime($x));