как отсортировать список файлов по дате - PullRequest
0 голосов
/ 25 октября 2011

Сервер возвращает это:

<div id="urls">

   04.10.2011-some-article.html   <br />
   10.09.2011-other-article.html   <br />
   14.07.2010-some-text.html   <br />
   18.09.2011-article.html   <br />
   25.10.2011-text.html   <br />

</div>

Но я бы хотел отсортировать эти статьи по фактической дате создания. Есть ли способ сделать это с помощью jQuery (или сразу с php?)

пожалуйста, дайте мне предложения Я ценю ваш интерес и помощь !!

Ответы [ 2 ]

1 голос
/ 25 октября 2011

Во-первых, это довольно плохие данные, получаемые с сервера. Похоже, что он может измениться без уведомления и т. Д. Если это API, вам следует искать лучший формат ответа, такой как JSON.

Тем не менее, вот некоторый PHP, который отсортировал бы ваши статьи по дате.

<?php

$serverData = <<<EOF
   04.10.2011-some-article.html   <br />
   10.09.2011-other-article.html   <br />
   14.07.2010-some-text.html   <br />
   18.09.2011-article.html   <br />
   25.10.2011-text.html   <br />
EOF;

$articles = explode("\n", $serverData);
usort($articles, function($a, $b) {
    $times = array();
    foreach (array($a, $b) as $article) {
        if ($article) {
            list($date, $title) = explode('-', trim($article), 2);
            list($day, $month, $year) = explode('.', trim($date));
            $times[] = strtotime("$year-$month-$day");
        } else {
            $times[] = 0;
        }
    }
    return $times[1] - $times[0];
});

print_r($articles);
1 голос
/ 25 октября 2011

Просто сделайте компиляцию на родном языке для этого алгоритма. Я думаю, 5 или 6 строк кода должно быть в порядке.

  • лишить первых двух и последних строк
  • используйте регулярное выражение для извлечения даты
    • либо измените порядок на YYY-MM-DD
    • или преобразовать в объект даты
  • поместить их в карту (ассоциативный массив)
  • Окончательная сортировка выполняется очень просто, используя asort
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...