Date Scope
Filter Scope
date - filer using a date value using equals, between, before and after condition logic.
created_at:
    label: Created
    type: date
The following properties are available for the filter.
| Property | Description | 
|---|---|
| minDate | the minimum/earliest date that can be selected. | 
| maxDate | the maximum/latest date that can be selected. | 
| firstDay | the first day of the week. Default: 0 (Sunday). | 
| showWeekNumber | show week numbers at head of row. Default: false | 
| useTimezone | convert the date and time from the backend specified timezone preference. Default: true | 
| conditions | for each condition, set to true or false to make it available, or as a string, can be custom SQL statement for selected conditions. Default: true. | 
The following conditions are available for filtering.
| Condition | Description | 
|---|---|
| equals | is within the selected date from start to end of day | 
| notEquals | is not within the selected date from start to end of day | 
| between | is between the two selected dates | 
| before | is before the selected date | 
| after | is after the selected date | 
The filtered value is automatically converted to the backend timezone preference, you may disable this using the useTimezone option.
created_at:
    label: Created
    type: date
    useTimezone: false
To only allow finding the exact date pass equals as a condition. To find results that contain any part of the text pass between, before or after to the conditions instead.
created_at:
    label: Created
    type: date
    conditions:
        equals: true
You may pass a default value, ensuring it is wrapped in quotes to represent a string. The default can be set to now to specify the current date.
created_at:
    label: Created
    type: date
    default: '2020-01-02'
You may set the minDate and maxDate to determine the minimum and maximum available date range.
created_at:
    label: Date
    type: date
    minDate: '2001-01-23'
    maxDate: '2030-10-13'
You may pass custom SQL to the conditions as a string with supporting values.
created_at:
    label: Created
    type: date
    conditions:
        before: created_at <= :value
        between: created_at >= :after AND created_at <= :before
The following parameters are supported.
:value: selected date formatted asY-m-d 00:00:00:valueDate: selected date formatted asY-m-d:before: before date formatted asY-m-d 00:00:00:beforeDate: before date formatted asY-m-d:after: afterwards date formatted asY-m-d 00:00:00:afterDate: afterwards date formatted asY-m-d
# PHP Interface
For access in PHP, you may define a custom modelScope in the model using the following example.
created_at:
    label: Created
    type: date
    modelScope: dateFilter
The scopeDateFilter method definition with values found in $scope->value, $scope->before and $scope->after.
function scopeDateFilter($query, $scope)
{
    if ($scope->condition === 'equals') {
        $query->where('created_at', $scope->value);
    }
    elseif ($scope->condition === 'notEquals') {
        $query->where('created_at', '<>', $scope->value);
    }
    elseif ($scope->condition === 'between') {
        $query
            ->where('created_at', '>=', $scope->after)
            ->where('created_at', '<=', $scope->before);
    }
    elseif ($scope->condition === 'after') {
        $query->where('created_at', '>=', $scope->value);
    }
    else {
        $query->where('created_at', '<=', $scope->value);
    }
}