2012-01-12 27 views
5

ऐसा प्रतीत होता है कि Zend_Validate_Date बस ठीक से काम नहीं करता है। उदाहरण के लिए:Zend_Validate_Date बस ठीक से काम नहीं करता

$validator = new Zend_Validate_Date(array('format' => 'yyyy')); 

यह एक सरल सत्यापनकर्ता है कि केवल चार अंकों में वर्ष को स्वीकार करना चाहिए है, फिर भी $validator->isValid('1/2/3') रिटर्न सच! वास्तव में, ज़ेंड?

या कैसे इस बारे में:

$otherValidator = new Zend_Validate_Date(array('format' => 'mm/dd/yyyy')); 
यहां तक ​​कि इसके बाद के संस्करण कोड के साथ

, $otherValidator->isValid('15/13/10/12/1222') रिटर्न true भी!

मैं ज़ेंड फ्रेमवर्क 1.11.9 का उपयोग कर रहा हूं। क्या यह सिर्फ मुझे है या यह वास्तव में एक भयानक सत्यापन वर्ग है? (अद्यतन: दूसरे शब्दों में, क्या मेरे कोड में कुछ गड़बड़ है, या यह एक बग है जिसे सबमिट किया जाना चाहिए?)

+0

प्रश्न क्या है? क्या यह एक भयानक सत्यापन वर्ग है? – thetaiko

+2

सिर्फ आप ही नहीं, इसकी समस्याएं [zf-7583] (http://framework.zend.com/issues/browse/ZF-7583) [zf-10030] (http://framework.zend.com/issues/ ब्राउज़/जेडएफ -10030) – drew010

+0

@thetaiko मेरी पोस्ट के अंत में अद्यतन देखें। – fronzee

उत्तर

6

उपरोक्त टिप्पणियों के अनुसार, स्पष्ट रूप से इस वर्ग के साथ एक बग है।

$validator = new Zend_Validate_Regex(
    array('pattern' => '/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/') 
); 
$validator->setMessage(
    "Date does not match the format 'mm/dd/yyyy'", 
    Zend_Validate_Regex::NOT_MATCH 
); 

उम्मीद है कि कि किसी और में मदद मिलेगी: यहाँ वैकल्पिक हल मैं, Zend_Validate_Regex का उपयोग कर के साथ आया है। कृपया ध्यान दें कि मैं केवल विभाजक के रूप में स्लैश चाहता हूं, न कि डॉट्स या डैश।

संबंधित मुद्दे