Rumah > Artikel > rangka kerja php > pertanyaan laravel antara keduanya
Dalam Laravel, pernyataan pertanyaan ialah salah satu fungsi yang paling biasa digunakan dalam rangka kerja Laravel Disebabkan perbezaan dalam volum data dan keperluan pertanyaan, kami sering menghadapi situasi di mana kami perlu menanyakan rekod antara dua tarikh. Walaupun pembina pertanyaan yang disediakan oleh rangka kerja Laravel sangat berkuasa, jika kita tidak menguasai penggunaannya yang bijak, kita akan menghadapi beberapa masalah dalam proses menulis pernyataan pertanyaan. Artikel ini akan memperkenalkan cara membuat pertanyaan rekod antara dua tarikh dalam Laravel.
Pertama sekali, perlu jelas bahawa dalam Laravel, anda boleh mencari rekod antara dua tarikh melalui kaedah whereBetween() bagi pembina pertanyaan. Kaedah whereBetween() menerima dua parameter, iaitu nama medan dan tatasusunan. Antaranya, dua elemen tatasusunan mewakili dua tarikh.
Sebagai contoh, apabila menanyakan jadual pengguna untuk pengguna yang tarikh pendaftarannya berada dalam julat masa tertentu, anda boleh menggunakan kod berikut:
$users = DB::table('users') ->whereBetween('created_at', ['2021-06-01', '2021-06-30']) ->get();
Kod di atas akan mengembalikan maklumat pengguna register_date pada Jun 2021. Antaranya, created_at ialah medan tarikh dalam jadual pengguna, dan kaedah whereBetween() menentukan julat nilai medan ini. Kaedah get() digunakan untuk mendapatkan hasil pertanyaan dan mengembalikan objek Koleksi yang mengandungi hasil pertanyaan.
Selain kaedah whereBetween(), kita juga boleh menggunakan kaedah whereDate() untuk menanyakan rekod pada hari tertentu. Contohnya, apabila menanyakan jadual pengguna untuk pengguna yang tarikh pendaftarannya adalah hari tertentu, anda boleh menggunakan kod berikut:
$users = DB::table('users') ->whereDate('created_at', '2021-06-01') ->get();
Kod di atas akan mengembalikan maklumat pengguna yang tarikh_daftarnya bersamaan dengan 1 Jun 2021. Kaedah whereDate() menentukan rekod dengan nilai medan created_at sebagai 1 Jun 2021. Kaedah get() juga digunakan untuk mendapatkan hasil pertanyaan.
Selain kaedah whereBetween() dan kaedah whereDate(), Laravel juga menyediakan beberapa kaedah lain untuk menanya tarikh. Kaedah ini termasuk whereDay(), whereMonth(), whereYear(), whereTime(), whereHour(), dsb. Kaedah ini digunakan untuk menanyakan maklumat pada hari, bulan, tahun, masa, dsb. Kaedah penggunaan adalah serupa dengan kaedah whereBetween() dan kaedah whereDate(), jadi saya tidak akan menerangkan butiran di sini.
Perlu diambil perhatian bahawa kaedah pertanyaan tarikh dalam pembina pertanyaan Laravel menggunakan masa UTC secara lalai, bukan waktu tempatan. Ini bermakna tidak kira apa waktu tempatan, pertanyaan akan dikira dalam waktu UTC. Oleh itu, apabila melakukan pertanyaan tarikh, anda perlu memastikan bahawa parameter tarikh yang diluluskan adalah konsisten dengan masa UTC.
Dalam aplikasi praktikal, untuk mengelakkan ralat pertanyaan yang disebabkan oleh isu zon waktu, kami biasanya menentukan zon waktu sebelum membuat pertanyaan atau dalam fail konfigurasi. Laravel menyediakan cara untuk mengkonfigurasi zon waktu secara global, iaitu, menetapkan zon waktu dalam fail config/app.php.
Dalam Laravel, kaedah untuk menukar masa kepada waktu UTC adalah seperti berikut:
$date = new Carbon('2021-06-01 12:00:00', 'Asia/Shanghai'); $utcDate = $date->utc();
Kod di atas menukar waktu tempatan '2021-06-01 12:00:00' kepada waktu UTC dan berikan nilai Berikan pembolehubah $utcDate. Karbon ialah kelas pemprosesan tarikh dan masa yang dibina ke dalam Laravel, yang sangat mudah digunakan. Kelas ini menyediakan pelbagai kaedah penukaran masa untuk memenuhi keperluan pelbagai senario dengan mudah.
Ringkasnya, artikel ini memperkenalkan cara untuk menanyakan rekod antara dua tarikh dalam Laravel. Apabila menggunakan pembina pertanyaan untuk melaksanakan pertanyaan tarikh, anda perlu memberi perhatian kepada tetapan zon waktu dan sama ada parameter tarikh yang dihantar adalah konsisten dengan masa UTC. Penggunaan pembina pertanyaan yang fleksibel boleh menjadikan pembangunan kami lebih ringkas dan cekap.
Atas ialah kandungan terperinci pertanyaan laravel antara keduanya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!