Dalam pembangunan PHP, pemprosesan masa adalah keperluan yang sangat biasa. Kita mungkin perlu menukar masa dalam format rentetan kepada cap masa, atau kita mungkin perlu menukar cap masa kepada format yang boleh dibaca. Sudah tentu, terdapat juga keperluan biasa untuk menukar jam, minit dan saat kepada saat. Jadi, bagaimana untuk mencapai penukaran ini? Artikel ini akan memperkenalkan beberapa kaedah pelaksanaan.
Kaedah 1: fungsi strtotime
Fungsi terbina dalam PHP strtotime()
boleh menghuraikan rentetan tarikh dan masa yang boleh dibaca manusia ke dalam cap waktu UNIX. Berdasarkan fungsi ini, kita boleh menukar jam, minit dan saat kepada saat. Kod pelaksanaan khusus adalah seperti berikut:
function hmsToSeconds($hms) { $seconds = strtotime("1970-1-1 $hms UTC"); return date('H:i:s', $seconds); }
Antaranya, $hms
ialah jam, minit dan saat, dan formatnya ialah H:i:s
, seperti 11:00:30
. Kami mula-mula menggabungkan jam, minit, saat dan titik masa UNIX (1970-1-1) ke dalam rentetan masa yang lengkap, dan kemudian menggunakan fungsi strtotime()
untuk menukarnya menjadi cap waktu UNIX. Akhir sekali, formatkan detik yang ditukar kepada jam, minit dan saat untuk output.
Perlu diambil perhatian bahawa oleh kerana fungsi strtotime()
menggunakan zon waktu semasa secara lalai, kita perlu menetapkannya untuk menggunakan zon waktu UTC
, jika tidak, perbezaan masa mungkin berlaku, mengakibatkan ralat dalam mengira detik.
Kaedah 2: fungsi letupan
Selain menggunakan fungsi strtotime()
, kita juga boleh menggunakan fungsi explode()
untuk membahagi rentetan jam, minit dan kedua mengikut :
, dan kemudian bahagikan setiap bahagian Tukar kepada saat dan tambah untuk mendapatkan jumlah saat. Kod pelaksanaan khusus adalah seperti berikut:
function hmsToSeconds($hms) { list($hours, $minutes, $seconds) = explode(':', $hms); return $hours * 3600 + $minutes * 60 + $seconds; }
Antaranya, fungsi list()
digunakan untuk menetapkan elemen tatasusunan yang diperoleh melalui fungsi explode()
kepada pembolehubah yang sepadan. Kami menetapkan tiga elemen jam, minit dan saat kepada tiga pembolehubah $hours
, $minutes
dan $seconds
dalam urutan, kemudian menukarnya kepada saat, dan kemudian menambahnya untuk mendapatkan jumlah bilangan saat.
Perlu diambil perhatian bahawa jika bahagian tertentu rentetan jam, minit dan kedua ialah nombor ganjil (seperti 01
), anda perlu memastikan bahawa ia tidak mengandungi sifar pendahuluan apabila dihantar ke fungsi, jika tidak, ia mungkin dihuraikan sebagai nombor perlapanan dan ralat akan berlaku.
Kaedah 3: Kelas DateTime
Selain menggunakan fungsi terbina dalam, kami juga boleh menggunakan kelas DateTime
yang disediakan oleh PHP untuk menukar jam, minit dan saat kepada jumlah saat. Kod pelaksanaan khusus adalah seperti berikut:
function hmsToSeconds($hms) { $time = date_create_from_format('H:i:s', $hms); return $time->getTimestamp() - strtotime('today'); }
Pertama, kami menggunakan fungsi date_create_from_format()
untuk memformat $hms
ke dalam objek masa H:i:s
. Kemudian, gunakan kaedah getTimestamp()
untuk mendapatkan cap masa UNIX yang sepadan dengan objek, dan kemudian tolak cap masa UNIX pada 0:00 hari ini untuk mendapatkan jumlah bilangan saat ini berbanding 0:00 hari ini.
Perlu diambil perhatian bahawa oleh kerana fungsi date_create_from_format()
mengembalikan objek DateTime
, anda perlu menggunakan kaedah objek untuk mendapatkan nilai cap waktu.
Ringkasan
Dalam pembangunan PHP, menukar jam, minit dan saat kepada saat adalah keperluan biasa. Kita boleh menggunakan fungsi terbina dalam strtotime()
dan explode()
, atau kita boleh menggunakan kelas DateTime
untuk mencapai penukaran melalui kaedah yang berbeza. Perlu diingatkan bahawa terdapat perbezaan tertentu antara kaedah yang berbeza dari segi ketepatan, kesahihan, dan kesukaran penggunaan Ia adalah perlu untuk memilih kaedah penukaran yang paling sesuai mengikut situasi tertentu.
Atas ialah kandungan terperinci Bagaimana untuk menukar jam, minit dan saat kepada saat dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!