2012-02-14 55 views

回答

1

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

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

http://javascriptcalendar.org/

但是如果你需要为此做一个服务器的验证,您可以使用以下源。如果您在使用一个表单元素上https://github.com/php-pike/Pike/blob/master/Validate/DateRange.php

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

1

你可以使用这个类从我的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很多:)

+0

代码因为派克的日期范围验证程序似乎不再可用。它移动了吗?它掉了吗? – 2013-04-05 11:54:05

+0

不,URL已更改,您可以查看1.4分支:https://github.com/php-pike/pike/tree/1.4.x – 2013-04-06 20:57:07