繁体   English   中英

使用输入MONTH和YEAR过滤记录,但记录仍返回当前的MONTH和YEAR

Filter the record using input MONTH and YEAR but record still return current MONTH and YEAR

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在通过输入MONTH和YEAR来获取该MONTH和YEAR中的所有出勤情况,以获取所有出勤记录。 但是我遇到一个问题,当我输入MONTH和YEAR时,它返回当前的MONTH和YEAR记录。 这是我下面的功能代码

public function getEmployeeAttendance(){
        $month = Carbon::now(request('attendance_date'))->format('m');
        $year = Carbon::now(request('attendance_date'))->format('Y');

        dump($month);
        dump($year);

        $emp_attendance = Attendance::whereMonth('attendance_date' , '=' , $month)
                                    ->whereYear('attendance_date' , '=' , $year)
                                    ->get();

        if ($emp_attendance->isEmpty() ) {
            return response()->json([
              'Error' => 'No record!!!.']);
        }

        return response()->json(
          [
            'success' => true, 
            'data' => $emp_attendance
          ]
        );
      }

当我使用dd($ month)和dd($ year)时,它返回当前的MONTH为“ 11”,而YEAR为“ 2018”,但是我在Postman中的输入为MONTH =“ 5”和YEAR =“ 2015”(结果应该返回空记录,但它返回所有当前数据)。

您能否给我一些有关如何改进此代码的建议。 我使用了另一个函数中的相同代码,但是在编写此代码以输入MONTH和YEAR时,该代码未运行。 谢谢!

2 个回复

使用Carbon :: parse代替Carbon :: now

选项1

如果您的输入是这样的:2018-11-12(Ymd)

$month = Carbon::createFromFormat('Y-m-d', request('attendance_date'))->format('m');
$year  = Carbon::createFromFormat('Y-m-d', request('attendance_date'))->format('Y');

dump($month);
dump($year);

$emp_attendance = Attendance::whereMonth('attendance_date' , '=' , $month)
                            ->whereYear('attendance_date' , '=' , $year)
                            ->get();

选项2

如果您的输入是这样的:2018-11-12 10:10:59(Ymd H:i:s)

$month = Carbon::createFromFormat('Y-m-d H:i:s', request('attendance_date'))->format('m');
$year  = Carbon::createFromFormat('Y-m-d H:i:s', request('attendance_date'))->format('Y');

dump($month);
dump($year);

$emp_attendance = Attendance::whereMonth('attendance_date' , '=' , $month)
                            ->whereYear('attendance_date' , '=' , $year)
                            ->get();

有关更多信息: https : //carbon.nesbot.com/docs/

选项3

如果您的输入是这样的:

1. Input box-1 >> 10(month) 
2. Input box-2 >> 2018(year)


/* 
# No need those section.
$month = Carbon::createFromFormat('Y-m-d H:i:s', request('attendance_date'))->format('m');
$year  = Carbon::createFromFormat('Y-m-d H:i:s', request('attendance_date'))->format('Y');

dump($month);
dump($year);
# END
*/

$emp_attendance = Attendance::whereRaw("month(attendance_date) = '".request('attendance_month')."'")
                            ->whereRaw("year(attendance_date) = '".request('attendance_year')."'")
                            ->get();
1 如何使用JavaScript从datetime获取date,year,month?

我想获得的年,月,日,小时,从分钟datetime在Javascript。 这是我的代码: 此代码在Chrome和Opera浏览器中可以正常工作,但在IE或Firefox中不起作用。 在这些浏览器中,它显示类似Nan-Nan-Nan Nan:Nan 。 ...

2 如何在NH Criteria API中使用year()和month()函数?

我需要在Criteria API中使用year()和month()函数来表达业务过滤器约束。 表达式如 显然不起作用 - 有没有解决方法如何实现这一目标? 我知道它在HQL中是完全可能的,但我需要使用条件API构建查询,因为有一些额外的进程处理查询添加排序,分页等。 示例 ...

4 在SQL的同一列中返回MONTH和YEAR

当前,我有一个查询,返回MONTH,YEAR,COUNT(*)。 我使用的制图程序需要日期字段位于一个单元格中。 我正在制作一个月度图,因此我将需要每个月(从2011年1月开始)返回为2011-01-31(最好是每个月的最后一天)。 为了弥补我可能遗留的漏洞:我在网站上注册了很多人 ...

5 Year()函数和Month()函数

美好的一天每一个目前我正在使用此代码来获取特定月份的数据 我的一些同事告诉我使用持续时间,例如。 问题是使用范围会更好吗? 我将如何计算月份的开始和下个月的开始? 如果用户只输入@month int and @year int? 任何帮助将非常感谢我在tsql中的新功能 ...

7 按 2 个输入过滤返回所有记录

我有 2 个搜索栏 - 一个按 productId 过滤,另一个按 storeNumber 过滤。 我的过滤方法只适用于一个输入,但我需要它来搜索两个输入。 如果我输入 storeNumber,它会正确过滤,如果我按 productId 添加过滤器,它将为我提供所有记录。 这是我的代码 ...

2020-06-04 08:29:41 0 15   angular
8 选择year(getdate()-2)和month作为12

我的源表列是ReportingPeriod Nvarchar(6)删除查询必须针对2年之前的数据。 此查询不起作用 我需要得到201212作为结果 条件是当前年份-2,月份是12 2014年的预期结果是201212年2015年的预期结果是201312年 ...

10 Perl:设置$ day,$ month和$ year

我设法拼凑了一个脚本,该脚本可读取数千个日志条目并创建它们的摘要。 到目前为止一切都很好。 我还希望能够为它创建过去90天内条目的单独摘要。 日志中的单个条目如下所示,始终将新条目添加到文件底部: 序列号:10123407 日期:2015年8月14日 时间:12:58 ...

2015-08-09 12:00:22 2 694   perl/ date
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM