我有一组选择出生日期:
<?php echo $this->Form->input('Profile.dob', array('label' => 'Date of Birth'
, 'dateFormat' => 'DMY'
, 'minYear' => date('Y') - 100
, 'maxYear' => date('Y') - 13)); ?>
并希望将选项中的默认值设置为“DAY MONTH YEAR”。
我已设法通过以下方式执行此操作:
<?php echo $this->Form->input('Profile.gender', array('label' => 'Gender', 'type' => 'select',
'options' => array('Male'=>'Male','Female'=>'Female'),'empty'=>'Select Sex')); ?>
但我不知道如何使用自动日期输入...
有人可以帮忙吗?感谢
答案 0 :(得分:13)
只需添加:
'selected'=>date('Y-m-d')
到您的选项数组。
该示例将显示当前日期。如果需要静态日期,请根据需要进行更换。例如:
'selected'=>'2011-12-10'
显然,对于日期和时间,请使用:
'selected'=>date('Y-m-d H:i:s')
或
'selected'=>'2011-12-10 11:13:45'
答案 1 :(得分:8)
这种方式有效:
<?php
echo $this->Form->input(
'Profile.dob',
array(
'label' => 'Date of Birth',
'dateFormat' => 'DMY',
'minYear' => date('Y') - 100,
'maxYear' => date('Y') - 13,
'empty' => array(
'day' => 'DAY',
'month' => 'MONTH',
'year' => 'YEAR'
)
)
);
?>
答案 2 :(得分:2)
如果您不介意另外两行,您可以尝试这样做吗?
<?php
echo $this->Form->year('Profile.dob', date('Y') - 100, date('Y') - 13, array('empty' => "YEAR"));
echo $this->Form->month('Profile.dob', array('empty' => "MONTH"));
echo $this->Form->day('Profile.dob', array('empty' => 'DAY'));
?>
答案 3 :(得分:2)
我在上面的cakephp 2.0中实现了这个
echo $this->Form->dateTime('dob', 'DMY','', array(
'value'=>'1987-02-12',
'empty'=>false,
'label'=>'Date Of Birth',
'minYear'=>date('Y')-60,
'maxYear'=>date('Y')-15)
);
'value'属性已经在2.0 api的cakephp之后添加,'selected'被删除。
Cakephp手册说:$ selected参数已从FormHelper中的几个方法中删除。现在所有方法都支持$ attributes ['value']键,应该用它代替$ selected。此更改简化了FormHelper方法,减少了参数的数量,并减少了$ selected创建的重复项。受影响的方法是:
FormHelper::select()
FormHelper::dateTime()
FormHelper::year()
FormHelper::month()
FormHelper::day()
FormHelper::hour()
FormHelper::minute()
FormHelper::meridian()
答案 4 :(得分:2)
另外,你真的确定你的意思吗?
您似乎混淆了默认值和空值。如果您使用“已选择”将默认值设置为DAY MONTH YEAR
,则您的代码将无效,因为DAY MONTH YEAR
不是有效日期。
使用
'empty' => array(
'day' => 'DAY',
'month' =>'MONTH',
'year' =>'YEAR'
);
看起来就像您要找的那样,邀请用户输入日期。
答案 5 :(得分:0)
如果相应的日期请求数据为空,则将Cakephp set设置为空值,因此只需在回显日期输入字段之前将其设置为null:
$this->request->data['Profile']['dob'] = null;
echo $this->Form->month('Profile.dob', array('empty' => "MONTH"));
// do the same for year and day
将在输入表格中预先选择空值(在您的情况下为“DATE”,“MONTH”,“YEAR”字段)
答案 6 :(得分:0)
这是目前在cakephp 2.5中使用的内容:
HashSet
);
这是一个更详细的说明,它会为您提供一个设置为当月第一天的默认值。年份的可能值介于当前和未来5年之间,按升序显示。
更完整:
echo $this->Form->input('fecha_pos_fijacion', array(
'label' => 'Fecha de fijación',
'dateFormat' => 'DMY',
'minYear' => date('Y'),
'maxYear' => date('Y')+5,
'orderYear' => 'asc',
'selected' => date('Y-m-1')
)
此处默认为下一个月的第一天