过滤日期。 Cakephp返回的是数组而不是日期,这正常吗?

| 我正在为一些分页列表构建过滤器,并且我希望能够显示两个日期之间创建的元素。但是我不确定如何正确执行操作。 风景:
<?php echo $this->Form->create(\'Logs\');?>
<fieldset>
<?php
    echo $this->Form->input(\'start\',array(\'type\'=>\'date\'));
    echo $this->Form->input(\'end\',array(\'type\'=>\'date\'));
?>
</fieldset>
<?php echo $this->Form->end(\'Filter\');?>
控制器:
...
$conditions[\'Logs.created BETWEEN ? AND ?\'] = array( $this->data[\'Logs\'][\'start\'],$this->data[\'Logs\'][\'end\']);
...
问题是
$this->data[\'Logs\'][\'start\']
$this->data[\'Logs\'][\'end\']
是数组,我需要字符串:
[Logs] => Array
(
    [start] => Array
        (
            [month] => 04
            [day] => 19
            [year] => 2011
        )

    [end] => Array
        (
            [month] => 04
            [day] => 19
            [year] => 2011
        )
)
我知道我可以使用一些php函数将数组转换为字符串,但是蛋糕中必须有一些函数或某些东西。我觉得我没有正确构建视图 谢谢你的帮助。
已邀请:
我认为最好的选择是编写自己的帮助器函数,然后在控制器中调用它。 该线程讨论如何创建您的助手:如何最好地将CakePHP日期选择器表单数据转换为PHP DateTime对象? 您可以像这样将其加载到控制器中
App::import(\'Helper\', \'DateHelper\');
$dateHelper = new DateHelper();
另外,为什么不只切换到常规文本输入,也可能切换到JS datepicker?这样可以解决您的问题,而不必求助于助手路线。不过,您会失去下拉菜单的可用性。
您可以使用时间助手,它是daysAsSql函数
daysAsSql( $begin, $end, $fieldName, $userOffset = NULL )
daysAsSql返回格式为\“($ field_name> = \'2008-01-21 00:00:00 \')和($ field_name <= \'2008-01-25 23:59:59 \')的字符串\”。如果您需要搜索两个日期(包括两个日期)之间的记录,这将很方便。 查看时间助手

要回复问题请先登录注册