对于出生场的日期我希望用户选择过去的日期从现在起15年前并禁用所有其他如何禁用未来使用Zend的PHP日历弹出过去的日期
回答
日历用户端控制器使用Javascript工作,因为它需要用户友好。所以你必须从日历弹出窗口中控制它。有很多JavaScript插件可用于此。 o禁用过去和将来的日期,您必须使用相关插件中给出的选项。
http://jqueryui.com/demos/datepicker/
http://javascriptcalendar.org/
但是如果你需要为此做一个服务器的验证,您可以使用以下源。如果您在使用一个表单元素上https://github.com/php-pike/Pike/blob/master/Validate/DateRange.php
:
你可以使用这个类从我的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 datepicker,那么使用Jquery maskedinput插件以及严格用户以特定格式填写日期自己也不错。喜欢的东西:
$('your-date-field').mask('9999-99-99', {
completed : function() {
$('your-date-field').datepicker('hide');
}
});
这将增加usabillity很多:)
代码因为派克的日期范围验证程序似乎不再可用。它移动了吗?它掉了吗? – 2013-04-05 11:54:05
不,URL已更改,您可以查看1.4分支:https://github.com/php-pike/pike/tree/1.4.x – 2013-04-06 20:57:07
阅读:http://framework.zend.com/manual/en/zend.locale.date.datesandtimes.html – 2012-02-14 10:20:17