Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah yang perlu saya lakukan jika masa data yang dipaparkan dalam panggilan php bercelaru?

Apakah yang perlu saya lakukan jika masa data yang dipaparkan dalam panggilan php bercelaru?

PHPz
PHPzasal
2023-04-11 09:11:28714semak imbas

Dalam beberapa tahun kebelakangan ini, dengan perkembangan pesat Internet dan teknologi komputer, pelbagai bahasa pembangunan laman web juga muncul, dan PHP (Hypertext Preprocessor), sebagai bahasa pengaturcaraan yang digunakan secara meluas dalam bidang pembangunan web, telah menjadi kegemaran dalam kalangan pembangun sesuatu bahasa. Walau bagaimanapun, dalam proses menggunakan PHP untuk membangunkan tapak web, anda pasti akan menghadapi beberapa masalah Artikel ini akan menumpukan pada masa memaparkan masalah bercelaru yang mungkin berlaku semasa memanggil data dalam PHP, dan menyediakan penyelesaian yang sepadan.

PHP ialah bahasa sebelah pelayan yang sering digunakan untuk memproses data dan operasi interaktif, jadi adalah perlu untuk memproses masa dalam banyak projek, seperti mendapatkan masa semasa, menukar cap masa kepada masa, dsb. Dalam PHP, fungsi date() biasanya digunakan untuk mendapatkan masa semasa. Walau bagaimanapun, apabila memanggil data masa, kadangkala anda akan mendapati bahawa paparan masa bercelaru Ini disebabkan oleh kaedah pengekodan masa PHP dan MySQL yang tidak konsisten.

Untuk menyelesaikan masalah ini, anda perlu memahami konsep asas pengekodan masa terlebih dahulu. Dalam MySQL, jenis data masa termasuk DATE, TIME, DATETIME dan TIMESTAMP. Antaranya, jenis DATE mewakili tarikh dalam format 'YYYY-MM-DD' jenis TIME mewakili masa dalam format 'HH:MM:SS' jenis DATETIME mewakili masa dan tarikh dalam format jenis TIMESTAMP 'YYYY-MM-DD HH:MM: SS' juga mewakili tarikh dan masa, tetapi formatnya ialah format cap waktu UNIX, iaitu bilangan saat dari tengah malam pada 1 Januari 1970 Greenwich Time hingga sekarang, seperti sebagai '1526713521'. Dalam PHP, fungsi yang biasa digunakan adalah seperti berikut:

  • masa(): Dapatkan cap masa semasa; 🎜 >strtotime(): Tukar tarikh kepada cap masa.
  • Apabila kaedah pengekodan masa MySQL dan PHP tidak konsisten, ia boleh menyebabkan paparan masa bercelaru. Oleh itu, adalah perlu untuk melakukan penukaran pengekodan masa yang sepadan mengikut keperluan sebenar.
  • Penyelesaian khusus adalah seperti berikut:

Dalam MySQL, tetapkan format storan medan masa kepada 'YYYY-MM-DD HH:MM:SS'. Dengan cara ini, apabila membuat pertanyaan, rentetan masa yang dikeluarkan daripada pangkalan data tidak perlu diformatkan, kerana formatnya sudah memenuhi keperluan masa PHP.

Dalam PHP, gunakan fungsi strtotime() untuk menukar rentetan masa menjadi cap waktu, dan kemudian gunakan fungsi date() untuk memformat cap masa ke dalam format masa yang diperlukan. Contohnya, untuk menukar jenis DATETIME dalam MySQL kepada format masa dalam PHP, anda boleh menggunakan kod berikut:
  1. $datetime = '2018-05-19 12:30:45';
  2. $ cap masa = strtotime($datetime);
  3. $time = tarikh('Y year m month d day H:i:s', $timestamp);

Antaranya, $datetime ialah aksara masa dalam MySQL String, $timestamp ialah cap masa, $time ialah masa selepas pemformatan.

Jika anda membaca medan masa terus daripada MySQL dan mengeluarkannya, anda juga boleh melakukan penukaran set aksara semasa membaca data. Apabila menanyakan data MySQL, anda boleh menggunakan pernyataan setcharset untuk menetapkan set aksara, seperti:

    $db = new mysqli($host, $user, $password, $database);
  1. $stmt = $db->prepare(“SELECT CONVERT(kandungan MENGGUNAKAN utf8) sebagai kandungan, masa DARIPADA berita;”);
  2. $stmt->execute();

Dalam pernyataan ini , gunakan Fungsi CONVERT menukar medan kandungan daripada pengekodan lalai dalam pangkalan data kepada pengekodan UTF-8.

Ringkasnya, masalah aksara bercelaru semasa memanggil data masa dalam PHP pada asasnya kerana kaedah pengekodan masa PHP dan MySQL tidak konsisten, jadi format data perlu ditukar dan ditranskodkan. Mengambil kaedah di atas boleh menyelesaikan masalah ini dengan berkesan dan memastikan paparan masa adalah normal.

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika masa data yang dipaparkan dalam panggilan php bercelaru?. 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