So erhalten Sie Daten zwischen zwei Daten in Laravel

In diesem Tutorial zeigen wir Ihnen, wie Sie in Laravel Daten zwischen zwei Daten abrufen. Sie können mehr als Beispiele zum Abrufen von Datensätzen zwischen zwei Daten in Laravel verwenden, indem Sie die  beredten Methoden whereBetween()where()whereDate() verwenden.

  • Mit Laravel whereBetween
  • Erhalten Sie Daten zwischen zwei Daten mit Kohlenstoff
  • Rufen Sie mit Eloquent Query Daten zwischen zwei Daten ab
  • Laravel-Datum zwischen Start- und Enddatum
  • Erhalten Sie Daten zwischen zwei Daten mit MySQL Raw Query

Mit Laravel whereBetween

Zuerst verwenden wir  die Laravel-Inbuild-Methode whereBetween()  , um Datensätze zwischen zwei Daten abzurufen. 

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Models\Post;
class PostController extends Controller
{
    public function index(Request $request)
    {
        $startDate = '2023-01-07';
        $endDate = '2023-07-30';

        $posts = Post::whereBetween('created_at', [$startDate, $endDate])->get();
        return $posts;
    }
}

Erhalten Sie Daten zwischen zwei Daten mit Kohlenstoff

Um Daten zwischen zwei Daten abzurufen, können wir die Carbon-Methoden startOfDay() und endOfDay() verwenden . Diese Methoden funktionieren genauso wie im obigen Beispiel:

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Models\Post;
use Carbon\Carbon;
class PostController extends Controller
{
    public function index(Request $request)
    {
        $startDate = Carbon::createFromFormat('Y-m-d', '2023-07-01')->startOfDay();
        $endDate = Carbon::createFromFormat('Y-m-d', '2022-07-30')->endOfDay();

        $posts = Post::whereBetween('created_at', [$startDate, $endDate])->get();
        return $posts;
    }
}

Rufen Sie mit Eloquent Query Daten zwischen zwei Daten ab

Eloquent bietet eine sehr hilfreiche  Methode whereDate()  , die zwei Dinge tut

  1. Erstellen Sie eine SQL-Abfrage, die die SQL-Funktion DATE() verwendet   , um den Inhalt der Spalte als  Ymd zu formatieren .
  2. Wandeln Sie ein Carbon- oder Datetime-Objekt ordnungsgemäß in das  Ymd-  Format um, bevor Sie es vergleichen.
<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Models\Post;
use Carbon\Carbon;
class PostController extends Controller
{
    public function index(Request $request)
    {
        $startDate = Carbon::createFromFormat('Y-m-d', '2023-07-01');
        $endDate = Carbon::createFromFormat('Y-m-d', '2023-07-30');
        
        $posts = Post::whereDate('created_at', '>=', $startDate)
            ->whereDate('created_at', '<=', $endDate)
            ->get();
        return $posts;
    }
}

Laravel-Datum zwischen Start- und Enddatum

Hier das Beispiel, in dem Sie Daten zwischen zwei verschiedenen Spalten abrufen können. Hier erhalten wir die Spalten „start_at“ und „end_at“. Sie können dies ausprobieren.

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Models\User;
use Carbon\Carbon;
class UserController extends Controller
{
    public function index(Request $request)
    {
        $startDate = Carbon::createFromFormat('Y-m-d', '2023-07-01');
        $endDate = Carbon::createFromFormat('Y-m-d', '2023-07-30');
        $users = User::whereDate('start_at', '>=', $startDate)
                ->whereDate('end_at', '<=', $endDate)
                ->get();

        return $users;
    }
}

Erhalten Sie Daten zwischen zwei Daten mit MySQL Raw Query

Wir könnten MySQL auch explizit mitteilen, dass uns nur das Datum wichtig ist, indem wir DATE() verwenden . Die von uns gewünschte Abfrage lautet wie folgt:

SELECT * FROM posts WHERE DATE(created_at) BETWEEN '2023-07-01' AND '2023-07-30'

Auf diese Weise vergleichen wir Daten mit Daten und nicht mit einer Datetime. Wir müssen darauf zurückgreifen, um DB:raw()dies mit Eloquent zu reproduzieren, was so aussehen würde:

$startDate = '2023-07-01';
$endDate = '2023-07-30';

Post::whereBetween(DB::raw('DATE(created_at)'), [$startDate, $endDate])->get();

Viel Spaß beim Codieren!!!

1.05 GEEK