Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan Karbon dengan CakePHP?
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.
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.
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
.
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.
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') ?>
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.
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
.
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!