Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menyelesaikan zon waktu yang salah dalam php
Penyelesaian: 1. Dalam fail php.ini, tetapkan "date.timezone = "time zone identifier"" untuk menukar zon waktu; 2. Dalam fail php, gunakan "ini_set('date.timezone ', 'Pengecam zon masa');" pernyataan untuk menukar zon waktu; 3. Gunakan pernyataan "date_default_timezone_set("time zone identifier");" dalam fail php untuk menukar zon waktu.
Persekitaran pengendalian tutorial ini: sistem windows7, versi PHP8, komputer DELL G3
Masa adalah penting dalam kehidupan, dalam PHP Sama adalah benar, masa kadangkala perlu disimpan untuk merakam sesuatu atau dipaparkan dalam pelayar.
Sebab zon waktu php tidak betul
Dalam PHP, tarikh dan masa diperoleh melalui fungsi tarikh dan masa. Fungsi tarikh dan masa bergantung pada tetapan masa pelayan Tetapan masa pelayan lalai kepada Masa Greenwich (masa zon masa sifar jika masa tidak ditetapkan secara khusus kepada zon waktu tertentu, maka masa yang diperolehi melalui fungsi PHP yang berkaitan akan menjadi waktu zon waktu sifar Ia adalah 8 jam kurang daripada waktu Beijing.
Disebabkan penulisan semula fungsi data() dalam PHP5.0, fungsi tarikh dan masa semasa adalah 8 jam kurang daripada masa sistem. Tetapan lalai bahasa PHP ialah Waktu Greenwich standard (iaitu, zon waktu sifar digunakan), jadi untuk mendapatkan waktu tempatan semasa mungkin berbeza daripada waktu tempatan, tetapan zon waktu dalam bahasa PHP mesti diubah.
Cara menetapkan zon waktu dalam PHP
Terdapat tiga cara untuk menetapkan zon waktu dalam PHP, yang diperkenalkan di bawah.
1) Tetapkan dalam fail konfigurasi
Fail konfigurasi PHP ialah fail php.ini dalam direktori pemasangan PHP, cari dan bukanya. Kemudian cari date.timezone
dalam fail,
dan ;date.timezone =
di hadapan ;
mempunyai fungsi yang sama seperti //
dalam PHP. Kedua-duanya bermaksud komen ;
Dan isikan pengecam zon waktu yang sepadan selepas = dalam ayat ini, seperti berikut:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Shangha
Beberapa pengecam zon waktu yang biasa digunakan dan maknanya:
Asia /Shanghai —— Shanghai
Asia/Chongqing —— Chongqing
Asia/Urumqi —— Urumqi
Asia/Hong_Kong —— Hong Kong
Asia/Macao —— Macau
Asia/Taipei —— Taipei
Asia/Singapura - Singapura
PRC - Zon Waktu China
Petua: Jika anda berada di China Kami boleh menetapkan zon waktu kepada "Asia/Shanghai atau PRC". Ingat untuk memulakan semula pelayan selepas tetapan berjaya!
2) Gunakan fungsi ini_set() untuk menetapkan zon waktu
Fungsi ini_set() dalam PHP boleh menetapkan nilai pilihan konfigurasi yang ditentukan . Pilihan konfigurasi ini akan berada dalam Nilai baharu dikekalkan semasa skrip berjalan dan dipulihkan apabila skrip tamat. Format sintaks fungsi adalah seperti berikut:
ini_set($varname, $newvalue)
di mana $varname ialah pilihan konfigurasi yang akan diubah suai dan $newvalue ialah nilai baharu bagi pilihan konfigurasi.
Petua: Fungsi ini_set() tidak boleh mengubah suai semua pilihan konfigurasi Anda boleh melihat konfigurasi yang boleh diubah suai dengan melawati "https://www.php.net/manual/zh/ini.list.php. "pilihan.
【Contoh】Gunakan fungsi ini_set() untuk menetapkan zon waktu.
<?php header("Content-type:text/html;charset=utf-8"); ini_set('date.timezone', 'GMT'); echo '当前的格林尼治时间为:'.date('Y-m-d H:i:s',time()).'<br>'; ini_set('date.timezone', 'Asia/Urumqi'); echo '乌鲁木齐的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>'; ini_set('date.timezone', 'Asia/Shanghai'); echo '上海的当前时间为:'.date('Y-m-d H:i:s',time()); ?>
Keputusan yang dijalankan adalah seperti berikut:
3) Gunakan fungsi date_default_timezone_set() untuk menetapkan zon waktu
PHP Fungsi date_default_timezone_set() dalam boleh menetapkan zon waktu lalai untuk semua fungsi masa dan tarikh dalam skrip Format sintaks adalah seperti berikut:
date_default_timezone_set($timezone_identifier)
Parameter $timezone_identifier ialah. pengecam zon waktu, seperti UTC (Greenwich Mean Time) atau Eropah /Lisbon (Portugal).
Memandangkan PHP5.1.0 (fungsi tarikh dan masa telah ditulis semula dalam versi ini), jika zon waktu adalah menyalahi undang-undang, setiap panggilan ke fungsi tarikh dan masa akan menjana mesej ralat peringkat E_NOTICE Jika anda menggunakan tetapan sistem atau Pembolehubah persekitaran TZ juga menjana maklumat tahap E_STRICT.
【Contoh】Gunakan fungsi date_default_timezone_set() untuk menetapkan zon waktu.
<?php header("Content-type:text/html;charset=utf-8"); date_default_timezone_set('Asia/Urumqi'); echo '乌鲁木齐的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>'; date_default_timezone_set('Europe/Lisbon'); echo '葡萄牙的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>'; date_default_timezone_set('Asia/Shanghai'); echo '上海的当前时间为:'.date('Y-m-d H:i:s',time()); ?>
Keputusan berjalan adalah seperti berikut:
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan zon waktu yang salah dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!