2

YYYY-MM-DDを使用して、ユーザーが入力した日付文字列を形式で検証していますZend_Validate::is($value,'Date')

この呼び出しにより、次の階層が作成されます。

Zend_Validate::is()
Zend_Validate_Date->isValid()
Zend_Date::isDate()
Zend_Locale_Format::getDate()
Zend_Locale_Format::_parseDate() 

最後に、次の例外で失敗します。

Zend_Locale_Exception: Unable to parse date '2009-09-08' using 'MMM d, y' (M <> y) in /usr/share/php/Zend/Locale/Format.php on line 1001

アプリケーションのロケールとして en_US を使用しています。この日付形式を受け入れるように Zend_Validate を設定するにはどうすればよいですか? たとえば、日付のロケール形式を変更することは可能ですか?

4

2 に答える 2

9

それを試してください:

$validator = new Zend_Validate_Date('YYYY-MM-DD');
if($validator->isValid($value))
    // yay
于 2009-09-08T08:14:38.290 に答える
5

zend_validate_dateバグがあります。次のyyyy-MM-dd形式を指定2011-10-11 12312し、検証のために日付文字列が渡されると、false ではなく true が返されます!!

于 2011-11-24T05:20:22.310 に答える