Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyelesaikan zon waktu yang salah dalam php

Bagaimana untuk menyelesaikan zon waktu yang salah dalam php

青灯夜游
青灯夜游asal
2023-02-02 19:09:433849semak imbas

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.

Bagaimana untuk menyelesaikan zon waktu yang salah dalam php

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(&#39;date.timezone&#39;, &#39;GMT&#39;);
echo &#39;当前的格林尼治时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
ini_set(&#39;date.timezone&#39;, &#39;Asia/Urumqi&#39;);
echo &#39;乌鲁木齐的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
ini_set(&#39;date.timezone&#39;, &#39;Asia/Shanghai&#39;);
echo &#39;上海的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time());
?>

Keputusan yang dijalankan adalah seperti berikut:

Bagaimana untuk menyelesaikan zon waktu yang salah dalam php

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(&#39;Asia/Urumqi&#39;);
echo &#39;乌鲁木齐的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
date_default_timezone_set(&#39;Europe/Lisbon&#39;);
echo &#39;葡萄牙的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
date_default_timezone_set(&#39;Asia/Shanghai&#39;);
echo &#39;上海的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time());
?>

Keputusan berjalan adalah seperti berikut:

Bagaimana untuk menyelesaikan zon waktu yang salah dalam php

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!

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
Artikel sebelumnya:Apakah kegunaan rehat dalam phpArtikel seterusnya:Apakah kegunaan rehat dalam php