如何设置条件以检查30天或30天以上的有效性

时间:2018-07-18 08:18:29

标签: php laravel date

我有一个文本字段为“到达”和“离开”的表单,

到达:2018年7月18日 出发时间:08/18/2018

如果我想住30天,它说我们最少要住2晚,请选择至少住2晚。

但是在这里我想如果我选择住30晚,那就让我保存日期。

this is the image showig details of my task

出现这种情况的我的控制器代码:

     // check minimun nights

    if($season!=null) {

        if ($season->minimum_nights != '' && ($number_of_days) < $season->minimum_nights) {

             $response = [
                'status' => 'error',
                'error' => 'Should be  ' . $season->minimum_nights . ' minimum nights in this season.',
            ];

            \Session::flash('error', 'We have ' . $season->minimum_nights . ' nights minimum, please select at least ' . $season->minimum_nights . ' nights stay.');

            return redirect()->back();
        }
    }

我在这里可以做的是让我增加30或超过30晚的住宿: 在这里,您的帮助将受到高度赞赏!

    $from_date = $request->get('arrival');
    $to_date = $request->get('departure');

    $number_of_days = numberOfDays($from_date,  $to_date );

    $status = $property->isPropertyAvailable($from_date, $to_date);

1 个答案:

答案 0 :(得分:0)

使用Carbon来获取天数,这将是一种更清洁的方式,imo。

        $from_date = Carbon::parse($request->get('arrival'));
        $to_date = Carbon::parse($request->get('departure'));

        $number_of_days = $from_date->diffInDays($to_date);

        if ($number_of_days < $season->minimum_nights) {
            $response = [
                'status' => 'error',
                'error' => 'Should be  ' . $season->minimum_nights . ' minimum nights in this season.',
            ];

            \Session::flash('error', 'We have ' . $season->minimum_nights . ' nights minimum, please select at least ' . $season->minimum_nights . ' nights stay.');

            return redirect()->back();
        }

        // Continue logic