在Carbon分析中没有得到正确的日期

时间:2019-01-15 08:15:53

标签: php laravel laravel-5.6 php-carbon

我正在使用laravel 5.6并通过dx数据网格添加日期,但是它给出的当前日期不是我选择的日期。

我试图更改日期格式,但是在这种情况下,日期是正确的。第一次插入后,它给了我错误的日期(即1970-01-01)。

$grids = $request->except('_token');
// $attendance_date=date('Y-m-d', strtotime($request['item']['attendance_date']));
$request->request->set('attendance_date', Carbon::parse($request->attendance_date)->format('Y-m-d'));

$grids=array();
$grids['name'] = $request['item']['name'];
$grids['attendance_type'] = $request['item']['attendance_type'];
$grids['dept'] = $request['item']['dept'];
$grids['user_id'] = $request['item']['user_id'];
$grids['attendance_date'] = $request->attendance_date;
$grids['attendance_month'] = $request->attendance_month;
$grids['attendance_year'] = $request->attendance_year;
$grids['org_name'] = $request->org_name;
$grids['org_id'] = $request->org_id;
dd($grids);

$requesteddate = $request->attendance_date;
$requesteduser_id = $grids['user_id'];
$attendances = DB::table('attendances')->where(['user_id' => $requesteduser_id])->get()->toArray();


foreach ($attendances as $key => $value) {
    $dbattendance_date = $value->attendance_date;
    $dbattendance_user_id = $value->user_id;

    if ($dbattendance_date == $requesteddate && $dbattendance_user_id == $requesteduser_id) {

        $insert['status'] = 'error';
        $insert['message'] = 'Attendance Already Exits';
        return Response()->json($insert);

    }
}
$insert = Attendance::create($grids);
return Response()->json($insert);

enter image description here

2 个答案:

答案 0 :(得分:2)

您的问题中有一些不相关的信息,为了更准确,我需要知道一些问题。话虽这么说,但我怀疑可能有以下几种可能性:

可能性#1

您已关闭错误报告。有很多原因可能导致您无法获得正确的日期,并且通常情况下,with error reporting turned on您会看到原因。例如,您对$request->attendance_date的使用可能返回一个null值,从而导致解析回退到可能的第一个UTC日期。

可能性#2

您正在执行$request->request->set('attendance_date' ...而不是$request->set('attendance_date'。不知道为什么要这样做,但是以后尝试使用$request->attendance_date时会使用null值,因为它的设置从未正确。再次,您可能会看到此问题,可能是错误报告/显示错误已打开。

可能性#3

您在Request输入中传递的日期是错误的。从空字符串到无效日期,这可以是任何东西。一个好的经验法则是,如果PHP的本机strtotime()函数可以正确解析它,那么Carbon也可以。

答案 1 :(得分:1)

谢谢您的答复,因为我解决了这个问题。

input fields