/** * Where Date * * @param Builder $query Builder * @param string $key Key * @param string $operator String Operator * @param int $value Value * * @throws InvalidArgumentException * @return mixed */ private function whereDate($query, $key, $operator, $value) { if (is_string($value)) { $value = str_replace("_", '', $value); // Caso vier com a mascara __/__/____ } if (!empty($value)) { $date = asDateTime($value); if ($date instanceof Datetime) { $query = $query->whereRaw($this->dateFormatDb($query, $key, $operator), [$date->format('Y-m-d')]); } else { if ($operator == '!=' || $operator == '<>') { $query = $query->whereNotNull($key); } else { $query = $query->whereNull($key); } } } return $query; }
/** * Return a timestamp as DateTime object. * * @param mixed $value Mixed Value * @return \Carbon\Carbon */ public function asDateTime($value) { $value = asDateTime($value); if (empty($value)) { return $value; } return parent::asDateTime($value); }