Передача даты в качестве параметра поиска - PullRequest
0 голосов
/ 23 марта 2012

Когда пользователь ищет пост по дате, мне нужно передать дату в качестве параметра поиска через URL.

Как: 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, а затем я могу перейти в другой формат после отправки формы?

Ответы [ 3 ]

4 голосов
/ 23 марта 2012

Вы можете преобразовать дату в отметку времени и передать, используя:

$date = '03/15/2012';

$timestamp = strtotime($date);

передать это в URL.

Преобразовать обратно в «мм / дд / гг», используя:

echo date('m/d/Y',$timestamp);
1 голос
/ 23 марта 2012

Параметры, которые не названы, передаются в действие, так что вы также можете сделать это в вашем контроллере:

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
    }
}

Возможны решения в зависимости от ваших потребностей ...; -)

0 голосов
/ 23 марта 2012

Вы можете urlencode значение даты при передаче его как части URL.Действие контроллера, которое обрабатывает запрос, должно использовать urldecode , чтобы преобразовать его обратно в исходное значение даты с косой чертой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...