Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar zon waktu dalam php

Bagaimana untuk menukar zon waktu dalam php

藏色散人
藏色散人asal
2022-01-12 11:20:357714semak imbas

Cara menukar zon waktu dalam php: 1. Cari date.timezone dalam fail konfigurasi dan tetapkan zon waktu 2. Gunakan fungsi ini_set() untuk menetapkan zon masa 3. Gunakan date_default_timezone_set () berfungsi untuk menetapkan zon waktu.

Bagaimana untuk menukar zon waktu dalam php

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Cara menukar masa zon dalam php?

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 Waktu 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.

Pembahagian zon waktu

Dunia dibahagikan kepada 24 zon waktu Setiap zon waktu mempunyai waktu tempatan masing-masing berbeza sebanyak 1 ~23 saat pada masa yang sama, contohnya, perbezaan antara waktu tempatan di London, UK dan waktu tempatan di Beijing ialah 8 jam.

Dalam bidang komunikasi radio antarabangsa, masa bersatu digunakan, dipanggil Universal Time Coordinated (UTC) adalah sama dengan Greenwich Mean Time (GMT).

Tetapan zon waktu dalam PHP

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, anda mesti menukar tetapan zon waktu dalam bahasa PHP.

Terdapat tiga cara untuk menetapkan zon waktu dalam PHP. Mari perkenalkan setiap satu di bawah.

1) Tetapkan dalam fail konfigurasi

Fail konfigurasi PHP ialah fail php.ini dalam direktori pemasangan PHP. Kemudian cari date.timezone dalam fail, dan kita akan melihat sekeping maklumat seperti yang ditunjukkan di bawah:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

di mana date.timezone = sebelumnya mempunyai fungsi yang sama seperti // dalam PHP, dan merupakan ulasan bermakna, di sini kita perlu mengalih keluar ini; dan mengisi pengecam zon waktu yang sepadan selepas = dalam ayat ini, seperti yang ditunjukkan di bawah:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shangha

Terdapat banyak pengecam zon waktu, yang boleh diakses dengan melawati "https: //www.php.net/manual/zh/timezones.php" untuk melihat, berikut menyenaraikan beberapa pengecam zon waktu yang biasa digunakan dan maknanya:

Asia/Shanghai —— 上海
Asia/Chongqing —— 重庆
Asia/Urumqi —— 乌鲁木齐
Asia/Hong_Kong —— 香港
Asia/Macao —— 澳门
Asia/Taipei —— 台北
Asia/Singapore —— 新加坡
PRC —— 中国时区

Petua: Jika kami berada di China, kami akan menetapkan zon masa Ia boleh menjadi "Asia/Shanghai atau PRC". Ingat untuk memulakan semula pelayan selepas tetapan berjaya!

[Contoh] Mari kita gunakan sekeping kod untuk mengesahkan sama ada tetapan kami berkesan.

<?php
    echo date(&#39;Y-m-d H:i:s&#39;,time());
?>

Hasil larian adalah seperti berikut:

2020-03-26 09:56:52

Jika hasil larian adalah sama dengan waktu tempatan komputer kita, ini bermakna tetapan kita berjaya.

2) Gunakan fungsi ini_set() untuk menetapkan zon waktu

Fungsi ini_set() dalam PHP boleh menetapkan nilai pilihan konfigurasi ini pilihan akan digunakan apabila skrip berjalan Kekalkan nilai baharu dan pulihkan pada penghujung skrip. 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
    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 berjalan adalah seperti berikut:

当前的格林尼治时间为:2020-03-26 02:37:31
乌鲁木齐的当前时间为:2020-03-26 08:37:31
上海的当前时间为:2020-03-26 10:37:31

3) Gunakan fungsi date_default_timezone_set() untuk menetapkan zon waktu

date_default_timezone_set () fungsi dalam PHP Anda 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
    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:

乌鲁木齐的当前时间为:2020-03-26 08:35:59
葡萄牙的当前时间为:2020-03-26 02:35:59
上海的当前时间为:2020-03-26 10:35:59

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menukar zon waktu 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