Dalam kesusahan ini, pengguna berusaha untuk memformat objek DateTime mempertimbangkan tempat lalai sistem mereka. Pada masa ini, pengguna menggunakan kaedah format(), tetapi ia tidak menghormati terjemahan bahasa yang diingini.
Mereka cuba untuk menggabungkan fungsi Locale::getDefault() untuk mendapatkan semula tetapan locale yang sesuai. Walau bagaimanapun, mereka tidak dapat mencari cara untuk mengarahkan DateTime::format menggunakan tetapan ini.
Penyelesaian yang disyorkan melibatkan penggunaan sambungan Intl untuk memformat tarikh. Sambungan ini sememangnya mematuhi tempat yang dipilih. Sebagai alternatif, pengguna boleh mengatasi tingkah laku ini menggunakan IntlDateFormatter::setPattern().
Berikut ialah coretan kod yang menunjukkan corak tersuai untuk format output yang diingini:
$dt = new DateTime; $formatter = new IntlDateFormatter('de_DE', IntlDateFormatter::SHORT, IntlDateFormatter::SHORT); $formatter->setPattern('E d.M.yyyy'); echo $formatter->format($dt);
Kod ini akan mengeluarkan tarikh dalam format yang dikehendaki, menghormati tempat Jerman sistem (de_DE). Contohnya, ia mungkin memaparkan "Di. 4.6.2013" untuk tarikh hari ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memformat Objek DateTime untuk Menghormati Tempat Lalai Sistem?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!