php - 如何设置从选定日期到当前日期的 DateType 范围?
问题描述
我想为此创建让我们选择年份和月份。当前的解决方案不起作用,我将所有月份都削减为7
,因为此时发布的当前月份是“7”。
$builder->add(
'filter_date',
DateType::class,
[
'format' => 'yMd',
'years' => range(
(new DateTime('2013-01-01'))->format('Y'),
(new DateTime())->format('Y')
),
'months' => range(
(new DateTime('2013-01-01'))->format('m'),
(new DateTime())->format('m')
),
'days' => [1],
'placeholder' => [
'year' => '----',
'month' => '----',
'day' => false,
],
'required' => true,
]
)
如何使之前的所有年份都有12个月份选择,而在今年,它将无法选择未来的月份?
解决方案
那是因为您正在使用尴尬的表达式定义从一月到当前日期的月份的间隔
range(
(new DateTime('2013-01-01'))->format('m'),
(new DateTime())->format('m')
)
关于什么
'months' => range(1,12)
如果你想回到 5 年前,那么多年来很简单
'years' => range(date("Y")-5, date("Y"))
或者如果您希望 2013 年作为固定开始
'years' => range(2013, date("Y"))
?
输入值的呈现发生在服务器端,因此您无法从输入中动态添加/删除值。如果您仍然想使用单独的输入值来选择日期,您必须编写自己的 JS 代码来动态替换值。
如果您同意日期选择器,则可以使用以下方法。
'widget' => 'single_text',
'attr' => array(
'max' => date('Y-m-d')
)
推荐阅读
- android - 将 OpenCV android 库从版本 4.1.0 更新到 4.1.1 的问题
- php - 我无法使用 API 和网站端口不同的 ajax 从我的网站使用 Rest API
- node.js - Mongoose Materialized Path 和 Mongoose Restify 可以一起使用吗?
- sql - 在 oracle sql 12c 中可以绕过分区吗?
- javascript - 将插值数据绑定到数组的现有元素
- python - Python:Json 反对,忽略某些字符
- c# - 尝试同步两个重复表单的内容时 C# 表单中的问题
- javascript - 括号“()”与分组运算符?它们总是代表同一个东西吗?
- ionic-framework - 如何居中
在一个里面 在离子 4 中? - sql - 试图从子查询中获取一列