diff --git a/src/QueryDataTable.php b/src/QueryDataTable.php index 3e384962..01cd5b71 100644 --- a/src/QueryDataTable.php +++ b/src/QueryDataTable.php @@ -381,19 +381,24 @@ public function columnControlSearch(): void if ($type === 'date') { try { + // column control replaces / with - on date value + if ($mask && str_contains($mask, '/')) { + $value = str_replace('-', '/', $value); + } + $value = $mask ? Carbon::createFromFormat($mask, $value) : Carbon::parse($value); + + if ($logic === 'notEqual') { + $this->query->where(function ($q) use ($columnName, $value) { + $q->whereDate($columnName, '!=', $value)->orWhereNull($columnName); + }); + } else { + $this->query->whereDate($columnName, $operator, $value); + } } catch (\Exception) { // can't parse date } - if ($logic === 'notEqual') { - $this->query->where(function ($q) use ($columnName, $value) { - $q->whereDate($columnName, '!=', $value)->orWhereNull($columnName); - }); - } else { - $this->query->whereDate($columnName, $operator, $value); - } - continue; }