PHP DateTime :: createFromFormat <

5 Cevap php

I'm looking for a function identical to DateTime::createFromFormat but I need it to work in an environment running a version of PHP which is older than v5.3. Basically I need to provide a format, like you'd use with the Date() function, and I then need to parse/validate a string against that format, and return a timestamp if the string is formatted correctly and a valid date.

Ben böyle bir şey bulabilirsiniz herkes biliyor, ya da ben kendim yazmak zorunda mı?

Yine, bu bir argüman olarak sağlanan belirli bir biçimde, birlikte çalışmak zorundadır. Biçim şey olabilir, bu yüzden sadece kullanabilirsiniz garantisi yok strtotime().

5 Cevap

http://framework.zend.com/manual/en/zend.date.html: Zend Framework adlı Zend_Date sınıfını kullanabilirsiniz

$date = new Zend_Date($string, $format);
$timestamp = $date->get();

Önce 5.3 PHP sürümü için ben 'DD.MM.YYYY' olarak biçimlendirmesi DateTime nesne formu dizeleri almak için feryat bu işlevi kullanın.

function ParseForDateTimeValue ($strText)
{
    if ($strText != "")
    {
        if (ereg("^([0-9]{1,2})[/\.]\s*([0-9]{1,2})[/\.]\s*([0-9]{2,4})$",$strText,$arr_parts)) {

            $month = ltrim($arr_parts[2], '0');
            $day = ltrim($arr_parts[1], '0');
            $year = $arr_parts[3];

            if (checkdate($month, $day, $year)) {
               return new DateTime(date('Y-m-d H:i:s', mktime(0, 0, 0, $month, $day, $year));
            }
        }
    }
    return NULL;
}
  • Giriş doğru olup olmadığını ilk doğrulamak.
  • Sonra özü ay, gün ve yılı
  • Tarihini doğrulamak için checkdate kullanın.
  • Zaman damgası ve DateTime contructor onu geçmek ve geri dönüştürmek.

Bir timestamp oluşturmak ve sonra timestamp yapabileceğiniz bazı explode olsun dize oluşturmak için .. tarihine kadar çalıştırabilirsiniz ..

$tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
echo "Tomorrow is ".date("Y/m/d", $tomorrow);