目前,我的代码显示了从1885年到2017年的一年。 这样做表明这些年代如0 = 1885年,1 = 1886年。
我想要的是它显示它像1885 = 1885年,1886年= 1886年等(这类似于汽车制造的日期)
$options = [];
for ($x = 1885; $x <= date("Y"); $x++) {
array_push($options, $x);
}
echo $this->Form->select('year', [
$options,
],[
'label' => false,
'class' => 'form-group form-control',
]);
所以我想知道如何解决我做错的事。
答案 0 :(得分:3)
for ($x = 1885; $x <= date("Y"); $x++) {
$options[$x] = $x;
}
答案 1 :(得分:2)
您也可以使用range()
和array_combine()
执行此操作: -
$years = range(1985, date('Y'));
$options = array_combine($years, $years);
答案 2 :(得分:1)
您需要设置$options
数组的键,因为键用作要提交的值。您也可以使用range
函数来生成数组:
$values = array_map('strval', range(1885, (int) date("Y")));
$options = array_combine($values, $values);