我創建的支付形式的symfony 1.4,我的形式有這樣定義的日期窗口小部件,使用戶可以選擇他的信用卡到期日期:如何使用sfForm無日期驗證日期?
new sfWidgetFormDate(array(
'format' => '%month%/%year%',
'years' => array_combine(range(date('Y'), date('Y') + 5), range(date('Y'), date('Y') + 5))
通知沒有%像大多數付款表格那樣格式化。
現在我的問題是,sfValidatorDate需要'天'字段不能爲空。要解決這個問題,我創建使用回調自定義驗證,效果很好:
public function validateExpirationDate($validator, $value)
{
$value['day'] = '15';
$dateValidator = new sfValidatorDate(array(
'date_format' => '#(?P<day>\d{2})(?P<month>\d{2})(?P<year>\d{2})#',
'required' => false,
'min' => strtotime('first day of this month')));
$dateValidator->clean($value);
return $value;
}
我覺得有可能是實現這個簡單的方法。你怎麼看?你是否已經以更清晰的方式解決了這個問題?
目前,我不存儲它,但我將它作爲未來存儲,很可能作爲一個字符串,因爲我發送給它的Web服務只需要一個字符串。或者,如果我想用它在他的信用卡到期時提醒用戶,可能是時間戳。無論如何,我(和你的)配置方法中的代碼會創建兩個選擇框。我的觀點是我想在本月或以後有一個有效的日期。這就是我們的代碼所做的,但是你的配置更加可配置,所以+1 :) – greg0ire 2011-04-18 14:57:48