对于出生日期字段,我希望用户选择从当前日期起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');
}
});
这将大大增加使用量:)