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
Barbara Streisandasal
2024-12-20 16:20:141035semak imbas

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);
}

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

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!

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