当用户按日期搜索时,我需要通过网址将日期作为搜索参数传递。
赞:http://siteurl/post/index/created:03/15/2012
正如您所看到的,日期格式为mm/dd/yy
,这会产生问题,因此我只会在请求中获得03
作为值。
已编辑:来自我的参数的一些代码我进入控制器。
Array
(
[controller] => posts
[action] => index
[named] => Array
(
[created] => 03
)
[pass] => Array
(
[0] => 15
[1] => 2012
)
[plugin] =>
[form] => Array
(
)
[url] => Array
(
[url] => /posts/index/created:03/15/2012
)
[isAjax] =>
)
用户是否可以选择mm/dd/yy
格式的日期,然后在提交表单后我可以更改为其他格式?
答案 0 :(得分:4)
您可以将日期转换为时间戳并使用以下方式传递:
$date = '03/15/2012';
$timestamp = strtotime($date);
将此传递给网址。
使用:
转换回'mm / dd / yy'echo date('m/d/Y',$timestamp);
答案 1 :(得分:1)
未命名的参数将传递给操作,因此您也可以在控制器中执行此操作:
function index($month, $day, $year)
{
}
如果您仍想在不传递任何日期的情况下使用此操作,请使用此操作并测试是否给出了值:
function index($month = null, $day = null, $year = null)
{
}
修改强>
如果它来自表单,您应该为表单使用POST而不是GET,并检索如下值:
function index()
{
if(isset($this->data['Post']['created']))
{
$created = $this->data['Post']['created'];
//Do you search here
}
}
根据您的需要,可能有解决方案......; - )
答案 2 :(得分:0)