Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengesahkan Rentetan Tarikh dengan Format Tertentu dalam PHP?

Bagaimanakah Saya Boleh Mengesahkan Rentetan Tarikh dengan Format Tertentu dalam PHP?

Barbara Streisand
Lepaskan: 2024-12-20 16:20:14
asal
992 orang telah melayarinya

How Can I Reliably Validate Date Strings with Specific Formats in PHP?

Mengesahkan Rentetan Tarikh dengan Format Ditetapkan dalam PHP

Pendekatan semasa anda untuk mengesahkan rentetan tarikh menggunakan ungkapan biasa mungkin tidak selalu menghasilkan hasil yang tepat. Untuk menangani had ini, artikel ini membentangkan kaedah unggul menggunakan kelas DateTime PHP.

Menggunakan DateTime::createFromFormat()

PHP's DateTime::createFromFormat() menyediakan fungsi penyelesaian komprehensif untuk pengesahan rentetan tarikh dengan format tertentu. Dengan menghantar rentetan input dan format yang diingini kepada fungsi ini, anda boleh mendapatkan objek DateTime yang mewakili tarikh.

function validateDate($date, $format = 'Y-m-d')
{
    $d = DateTime::createFromFormat($format, $date);
    // The Y ( 4 digits year ) returns TRUE for any integer with any number of digits so changing the comparison from == to === fixes the issue.
    return $d && strtolower($d->format($format)) === strtolower($date);
}
Salin selepas log masuk

Pertimbangan Tambahan

Fungsi validateDate() menggunakan kriteria berikut untuk memastikan ketepatan:

  • Rentetan asal mesti diubah menjadi DateTime objek.
  • Perwakilan terformat bagi objek DateTime sepatutnya sepadan dengan rentetan yang disediakan.

Kes Ujian dan Demo

Ujian berikut kes mempamerkan kepelbagaian fungsi validateDate():

var_dump(validateDate('2013-13-01'));  // false
var_dump(validateDate('20132-13-01')); // false
var_dump(validateDate('2013-11-32'));  // false
var_dump(validateDate('2012-2-25'));   // false
var_dump(validateDate('2013-12-01'));  // true
var_dump(validateDate('1970-12-01'));  // true
var_dump(validateDate('2012-02-29'));  // true
var_dump(validateDate('2012', 'Y'));   // true
var_dump(validateDate('12012', 'Y'));  // false
var_dump(validateDate('2013 DEC 1', 'Y M j'));  // true
Salin selepas log masuk

Cuba demo dengan melawati pautan yang disediakan.

Kesimpulannya, DateTime::createFromFormat() menawarkan kaedah yang teguh untuk mengesahkan rentetan tarikh dalam PHP, memastikan ketepatan dan fleksibiliti dalam kod anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Rentetan Tarikh dengan Format Tertentu dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan