我有这个:
<?php echo $this->Form->input('Schedule.0.end_date', array(
'minYear' => date('Y'),
'maxYear' => date('Y')+5
)); ?>
我想将默认日期设置为今天以外的其他日期。这可能与CakePHP的表单助手有关吗?
我发现了一篇帖子,显示了如何使用TIME - 但通过设置“day”,“month”,“year”来尝试类似的东西什么也没做。
答案 0 :(得分:13)
您可以使用selected
的{{1}}参数来实现这一目标。试试这样:
$this->Form->input();
答案 1 :(得分:5)
只是Cake 3 *用户的更新:现在为了预编译datetime字段,使用'default'关键字是必要的:
echo $this->Form->input('datetime', array(
'label' => 'Date 2',
'default' => '2015-09-10 06:40:00'
));
答案 2 :(得分:0)
使用&#39;选择&#39;的问题表单助手中的选项,如果您提交表单,则提交的值将被所选值覆盖,因此如果页面由于错误或其他内容而重新加载,则用户将丢失原始提交的内容。
如果尚未设置默认值,我宁愿在控制器中设置默认值,否则将由上次提交填充。
在控制器中:
if (!isset($this->request->data['start_date']))
$this->request->data['start_date'] = date('Y-m-d', strtotime('-1 month'));
这种方式,用户第一次加载表单时,会显示一个所需的默认值,但如果他们提交表单一次并将其返回给它,则仍会选择其选定的值。
答案 3 :(得分:0)
使用CakePHP 2.x,
echo $this->Form->input('end', array(
'selected' => array(
'day' => date('d'),
'month' => date('m'),
'year' => date('Y'),
'hour' => date('h'),
'min' => date('i'),
'meridian' => date('a')
)));
如果您想用英文单词显示月份数字:
$month = DateTime::createFromFormat('!m', date('m'));
$month->format('F');
echo $this->Form->input('end', array(
'selected' => array(
'day' => date('d'),
'month' => $month->format('F'),
'year' => date('Y'),
'hour' => date('h'),
'min' => date('i'),
'meridian' => date('a')
)));