0

我在表单中有一个开始日期元素和一个结束日期元素。每个都是使用日期选择器选择的。我希望我的表单自动将表单的结束日期元素设置为选择开始日期后的一天(因此,例如,如果我选择 2013 年 7 月 10 日,结束日期字段中的值应默认为 7 月2013 年 11 月 11 日)。从那时起,用户可以随意设置结束日期,但最初应该是后天。

这是我的表单代码:

    // Element: start_date
    $start_date = new Zend_Form_Element_Text('start_date',
        array(
             'label' => 'Start date',
             'required' => false,
             'filters' => array('StringTrim', 'StripTags'),
             'class' => 'input-small datepicker',
             'decorators' => $customElementDecorators,
             'data-date' => date("Y-m-d"),
             'data-date-format' => 'yyyy-mm-dd',
             'value' => date("Y-m-d")
        )
    );

    // date validator
    $start_date->addValidator(new Zend_Validate_Date('Y-m-d'));

    $this->addElement($start_date);
    unset($start_date);

    // Element: end_date
    $end_date = new Zend_Form_Element_Text('end_date',
        array(
             'label' => 'End date',
             'required' => false,
             'filters' => array('StringTrim', 'StripTags'),
             'class' => 'input-small datepicker',
             'decorators' => $customElementDecorators,
             'data-date' => date("Y-m-d"),
             'data-date-format' => 'yyyy-mm-dd',
             'value' => date("Y-m-d")
        )
    );
    $this->addElement($end_date);
    unset($end_date);

提前致谢。

4

2 回答 2

1

您绝对需要使用 Javascript(或 Jquery ...有一个不错的插件:http ://trentrichardson.com/examples/timepicker/ )来“实时”执行此类操作。其他解决方案是在发布操作后检查日期并显示自定义错误消息。

于 2013-06-18T16:31:32.957 回答
0

当您为 end 设置 data-date 属性时,为其分配值date("Y-m-d", strtotime("+1 day"));

$end_date = new Zend_Form_Element_Text('end_date',
    array(
         'label' => 'End date',
         'required' => false,
         'filters' => array('StringTrim', 'StripTags'),
         'class' => 'input-small datepicker',
         'decorators' => $customElementDecorators,
         'data-date' => date("Y-m-d", strtotime("+1 day")),
         'data-date-format' => 'yyyy-mm-dd',
         'value' => date("Y-m-d")
    )
);
于 2013-06-17T18:12:00.757 回答