PHP Tarih doğrulama

3 Cevap php

Ne olur biçiminde tarihini doğrulamak için preg_split fonksiyonuna gitmek istiyorum regex ifadesi

7-Mar-10 veya nasıl formatında bir tarih doğrulamak 7-Mar-10 PHP

Teşekkürler.

3 Cevap

DateTime sınıfın createFromFormat yöntemi (function şeklinde de kullanılabilir) Verili bir biçimde karşı bir tarih dizesi ayrıştırmak için izin verir. Sınıfı da neyin yanlış gittiğini görmek istesin sizin için hataların takip tutmanın yararı vardır.

Burada hızlı bir yay / nay doğrulama işlevi var:

function valid($date, $format = 'j-M-y') {
    $datetime = DateTime::createFromFormat($format, $date, new DateTimeZone('UTC'));
    $errors   = DateTime::getLastErrors();
    return ($errors['warning_count'] + $errors['error_count'] === 0);
}

var_dump(valid('7-Mar-10')); // bool(true)
var_dump(valid('7-3-10'));   // bool(false)

Sadece any tarih (hatta 'yanlış' tarihleri ​​kabul etmek isteyen varsa tabii ki, yukarıda sadece tek bir tarih biçimini (ve PHP 5.3 olarak kullanılabilir) doğrulamak için böylece otomatik olarak dönüştürülür olduğunu Doğru değer), ya da herhangi bir nedenle henüz diğer yanıtlar belirtildiği gibi o, PHP 5.3 kullanamazsınız, strtotime yardım olacaktır.

Ben, ilk patlayabilir ile yapmak istiyorum

$parts=explode("-",$date);

daha sonra bir dizi ile

$months=array("Jan"=>1,"Feb"=>2...)

ve ardından checkdate ($ ay [$ parça 1], $ parçalar [0], $ parçalar [2]) kullanın