如何在symfony doctrine form dateType中选择一年中的第二个月并根据闰年显示正确的日期28或29?
下面的图片是我使用表单主题进行自定义的表单。它显示得很好,但问题是当我选择第二个月它仍然让我选择大于29的那天。我可以在Symfony中验证它吗?或者有其他方法可以做到这一点?
以学说形式:
$builder
->add('startDate', DateType::class, [
'format' => 'yyyy-MM-dd',
])
->add('endDate', DateType::class, [
'format' => 'yyyy-MM-dd',
]);
以观看形式主题(树枝)
{% block date_widget %}
{% spaceless %}
{% if widget == 'single_text' %}
{{- block('form_widget_simple') -}}
{% else %}
{% set attr = attr|merge({class: (attr.class|default('') ~ ' form-inline')|trim}) %}
{% if datetime is not defined or not datetime %}
<div {{ block('widget_container_attributes') }}>
{%- endif %}
{{ date_pattern|replace({
'{{ year }}': form_widget(form.year, {'attr': {'id': 'year', 'name': 'year', 'class': 'form-control'}}),
'{{ month }}': form_widget(form.month, {'attr': {'id': 'month', 'name': 'month', 'class': 'form-control'}}),
'{{ day }}': form_widget(form.day, {'attr': {'id': 'day', 'day': 'day', 'class': 'form-control'}}),
})|raw }}
{% if datetime is not defined or not datetime %}
</div>
{%- endif -%}
{% endif %}
{% endspaceless %}
{% endblock date_widget %}
在视图中
<div class="col-xs-12" style="margin-top:10px">
<div class="form-inline">
<div class="form-group">
<label>Effective Time: </label>
</div>
<div class="form-group">
{{ form_widget(form.startDate) }}
</div>
<div class="form-group">
<label> - </label>
</div>
<div class="form-group">
{{ form_widget(form.endDate) }}
</div>
</div>
</div>
答案 0 :(得分:0)
您是否必须完全自己实施表单? 有客户端解决方案,如:http://amsul.ca/pickadate.js。只是谷歌“javascript datepicker”。
之后,您应该验证日期服务器端以及: 你可以使用php的checkdate函数:var_dump(checkdate(12,31,2000)); http://php.net/manual/en/function.checkdate.php