如何使用zend和php在日历弹出窗口中禁用未来和过去的日期


how to disable future and past dates in calendar popup using zend with php

对于出生日期字段,我希望用户选择从当前日期起15年前的过去日期,并禁用所有其他

用户端的日历控制器使用Javascript工作,因为它需要对用户友好。所以你必须从日历弹出窗口中控制它。有很多javascript插件可用于此。o禁用过去和未来的日期,你必须使用相关插件中给出的选项。

http://jqueryui.com/demos/datepicker/

http://javascriptcalendar.org/

然而,若您需要为此进行服务器验证,您可以使用以下来源。

http://framework.zend.com/manual/en/zend.date.basic.html

您可以使用我的PHP Pike库中的此类:https://github.com/php-pike/Pike/blob/master/Validate/DateRange.php

如果你在表单元素上使用它:

<?php
$form = new Zend_Form();
$element = Zend_Form_Element_Text('birthdate');
$element->setLabel('Some label');
$element->addValidator(new Pike_Validate_DateRange(array('lt' => Zend_Date::now()->subYear(15)));
$form->addElement($element);
?>

这是服务器端验证。您可以使用Prasad的答案进行客户端验证。两者兼而有之是明智的。

如果你使用Jquery ui日期选择器,那么使用Jquery maskedinput插件也很好,它可以严格要求用户自己以某种格式填写日期。类似于:

$('your-date-field').mask('9999-99-99', {
    completed : function() {
        $('your-date-field').datepicker('hide');
    }
});

这将大大增加使用量:)