我有这个:
<?php echo $this->Form->input('Schedule.0.end_date', array(
'minYear' => date('Y'),
'maxYear' => date('Y')+5
)); ?>
我希望能将默认日期设置为今天以外的某个日期。使用CakePHP表单助手是否有可能实现这一点?
我发现一篇文章介绍了如何使用TIME来实现此功能,但是尝试通过设置“day”、“month”、“year”等参数并没有起到作用。
我有这个:
<?php echo $this->Form->input('Schedule.0.end_date', array(
'minYear' => date('Y'),
'maxYear' => date('Y')+5
)); ?>
您可以使用 $this->Form->input();
的 selected
参数来实现。 像这样尝试:
<?php
echo $this->Form->input('datetime', array(
'label' => 'Date 1',
'selected' => array(
'day' => '',
'month' => '',
'year' => '',
'hour' => '',
'minute' => '',
'second' => ''
)
));
/* What's interesting... this will work aswell: */
echo $this->Form->input('datetime', array(
'label' => 'Date 2',
'selected' => '0000-00-00 00:00:00'
));
?>
echo $this->Form->input('datetime', array(
'label' => 'Date 2',
'default' => '2015-09-10 06:40:00'
));
使用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')
)));
if (!isset($this->request->data['start_date']))
$this->request->data['start_date'] = date('Y-m-d', strtotime('-1 month'));
这种方式可以让用户在第一次加载表单时看到一个理想的默认值,但如果他们提交了表单并被带回到它,他们选择的值仍然会被选中。