일반적으로 사용자 정의 유효성 검사기를 작성하는 것이 좋습니다. 제 생각에는 ZF에서 이러한 경우를 처리하는 가장 깨끗한 방법입니다.
본인이 알고있는 것처럼 Date 유효성 검사기는 날짜의 정식 유효성 만 검사하지만 두 날짜는 비교할 수 없습니다. 마음에 제한이 유일한 젠드 프레임 워크에 내장 된 사용하기로 그러나, 나는이 초과] 유효성 검사기를 사용하여 다소 해키 솔루션을 내놓았다 유효성 검사기 : 이전 달의 년에서 정수를 만들
<?php
$year = 2012;
$month = 1;
$inputDatePast = intval(sprintf('%4d%02d', $year, $month)); //201201
$year = 2016; // if you read this after september 2016: add a few more years here ;)
$month = 9;
$inputDateFuture = intval(sprintf('%4d%02d', $year, $month)); //201609
$prevMonth = intval(date('Ym', mktime(12, 0, 0, date('n')-1, 1, date('Y'))));
$validator = new Zend_Validate_GreaterThan($prevMonth);
$validator->isValid($inputDatePast); // false
$validator->isValid($inputDateFuture); // true
?>
그래서 아이디어가와 주어진 연도와 월이이 값보다 큰지 비교하십시오. 이 정수는 해당 연도에 대해 4 자리수로 생성되고 그 앞에 2 자리수 (선행 0이 중요 함)가 작성됩니다.
예를 들어 2012 년 9 월은 201209입니다. 사용자가 2011 년 10 월을 입력하면 201109가 201209보다 작아서 false로 평가됩니다. 반면에 사용자가 2014 년 1 월을 입력하면 이전 날짜보다 큰 201401이됩니다.
이것은 테스트되지 않은 스케치이며 더 많은 고려와 검증이 필요할 수 있습니다.
가능한 복제본 http://stackoverflow.com/questions/2232949/date-validator-that-validates-if-the-date-is-great-to-today-with –
@DiegoPaladino 예, 나는 그 질문을 보았고, 나는 Zend에 그러한 내장 함수가 있는지 알고 싶기 때문에 적절하게 편집했습니다. –