Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan Karbon dengan CakePHP?

Bagaimana untuk menggunakan Karbon dengan CakePHP?

王林
王林asal
2023-06-06 10:30:381170semak imbas

Karbon ialah perpustakaan pemprosesan tarikh dan masa yang popular dalam PHP. Ia menyediakan kaedah pemformatan cap masa dan tarikh yang mudah, serta banyak fungsi berguna seperti perbandingan tarikh dan penukaran zon waktu. Dalam aplikasi CakePHP, kami boleh menyepadukan Karbon dengan mudah dan memanfaatkan kuasanya untuk mengendalikan tarikh dan masa.

Artikel ini akan memperkenalkan cara menggunakan Karbon dalam CakePHP. Kami akan mulakan dengan memasang Carbon dan kemudian merangkumi cara menggunakan pelbagai ciri Carbon, seperti pemformatan masa, perbandingan tarikh dan penukaran zon masa, dalam model dan paparan CakePHP.

Memasang Karbon

Untuk menggunakan Karbon dengan CakePHP, kita perlu memasangnya terlebih dahulu. Dalam Composer, kita boleh memasang Carbon menggunakan arahan berikut:

composer require nesbot/carbon

Selepas pemasangan selesai, kita perlu memperkenalkan Carbon ke dalam CakePHP. Untuk melakukan ini, kami boleh menambah kod berikut pada penghujung fail config/bootstrap.php:

use CarbonCarbon;

require_once ROOT . DS . 'vendor' . DS . 'autoload.php';

Ini akan membolehkan kami menggunakan kelas Carbon dalam aplikasi kami.

Menggunakan Karbon dalam Model

Kes penggunaan biasa untuk menggunakan Karbon dalam model CakePHP adalah untuk menukar medan tarikh dan masa dalam pangkalan data kepada waktu tempatan. Kita boleh mencapai ini menggunakan kaedah parse() Carbon. Sebagai contoh, katakan kita mempunyai model yang dipanggil Article dan model tersebut mempunyai medan datetime yang dipanggil published . Kita boleh menukarnya kepada waktu tempatan dan menyimpannya dalam atribut published_local model seperti ini:

use CarbonCarbon;

class Article extends AppModel {
    public function getPublishedLocal() {
        $published = $this->get('published');
        if ($published instanceof Carbon) {
            // 已经是 Carbon 对象,无需转换
            return $published->copy();
        }
        return Carbon::parse($published)->tz('Asia/Shanghai');
    }
}

Dalam kod di atas, kami mula-mula menyemak sama ada medan published sudah menjadi Objek Karbon, jika ia, tiada penukaran diperlukan dan ia dikembalikan terus. Jika tidak, kami akan menukarnya kepada objek Carbon menggunakan kaedah parse() Carbon, dan kemudian menukarnya kepada waktu tempatan (menetapkan zon waktu kepada 'Asia/Shanghai') menggunakan kaedah tz().

Kini kita boleh mengakses atribut published_local dengan mudah dalam model untuk mendapatkan versi masa tempatan medan published.

Menggunakan Karbon dalam Pandangan

Terdapat banyak kes penggunaan untuk menggunakan Karbon dalam paparan CakePHP. Sebagai contoh, kami mungkin perlu memaparkan tarikh atau masa dalam format tertentu, atau memaparkan kandungan yang berbeza berdasarkan nilai medan tarikh dan masa.

Format tarikh dan masa

Untuk memformat tarikh dan masa ke dalam format yang kita mahu, kita boleh menggunakan kaedah format() Carbon. Sebagai contoh, katakan kita ingin memformat medan tarikh created ke dalam format "Y-m-d". Kita boleh menggunakan kod berikut dalam paparan:

<?= $article->created->format('Y-m-d') ?>

Begitu juga, untuk memformat medan masa updated ke dalam format "H:i:s", kita boleh menggunakan kod berikut dalam paparan:

<?= $article->updated->format('H:i:s') ?>

Perbandingan Tarikh

Satu lagi kes penggunaan di mana kita mungkin perlu menggunakan Karbon dalam paparan ialah membandingkan tarikh. Kita boleh menggunakan kaedah diffForHumans() Carbon untuk membandingkan medan tarikh dengan tarikh semasa dan memaparkannya sebagai "hari lalu", "minit lalu", dsb. Sebagai contoh, katakan kita ingin memaparkan dalam paparan berapa lama masa telah berlalu sejak artikel diterbitkan. Kita boleh menggunakan kod berikut:

<?= $article->published->diffForHumans() ?>

Ini akan memaparkan "2 hari lalu", "5 minit lalu", dsb.

Penukaran Zon Masa

Akhir sekali, kita mungkin perlu menukar medan tarikh dan masa dalam paparan kepada zon waktu yang berbeza. Sebagai contoh, jika aplikasi kami menetapkan zon waktu lalai kepada UTC, tetapi pengguna melihat data dalam zon waktu tempatan mereka, kami perlu menukar medan tarikh dan masa daripada UTC kepada zon waktu tempatan pengguna. Untuk melakukan ini, kita boleh menggunakan kaedah setTimezone() Carbon. Sebagai contoh, katakan aplikasi kami menetapkan zon waktu lalai kepada UTC, tetapi zon waktu tempatan pengguna ialah 'Asia/Shanghai'. Kita boleh menukar medan published kepada waktu tempatan pengguna menggunakan kod berikut dalam paparan:

<?= $article->published->setTimezone('Asia/Shanghai')->toDateTimeString() ?>

Ini akan memaparkan waktu tempatan medan 'Y-m-d H:i:s' dalam format published.

Kesimpulan

Dalam artikel ini, kami membincangkan cara menggunakan Karbon dalam CakePHP, termasuk kes penggunaan yang berbeza untuk menggunakan Karbon dalam model dan paparan. Kini anda sepatutnya dapat menyepadukan Karbon dengan mudah dan memanfaatkan kuasanya untuk bekerja dengan tarikh dan masa.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Karbon dengan CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn