Разделить список на несколько разделителей

Вот мое решение для модуля уведомлений, который я построил некоторое время назад. Он возвращает результат, похожий на раскрывающийся список уведомлений Facebook (например, 1 день назад, только сейчас и т. Д.).

public function getTimeDifference($time) {
    //Let's set the current time
    $currentTime = date('Y-m-d H:i:s');
    $toTime = strtotime($currentTime);

    //And the time the notification was set
    $fromTime = strtotime($time);

    //Now calc the difference between the two
    $timeDiff = floor(abs($toTime - $fromTime) / 60);

    //Now we need find out whether or not the time difference needs to be in
    //minutes, hours, or days
    if ($timeDiff < 2) {
        $timeDiff = "Just now";
    } elseif ($timeDiff > 2 && $timeDiff < 60) {
        $timeDiff = floor(abs($timeDiff)) . " minutes ago";
    } elseif ($timeDiff > 60 && $timeDiff < 120) {
        $timeDiff = floor(abs($timeDiff / 60)) . " hour ago";
    } elseif ($timeDiff < 1440) {
        $timeDiff = floor(abs($timeDiff / 60)) . " hours ago";
    } elseif ($timeDiff > 1440 && $timeDiff < 2880) {
        $timeDiff = floor(abs($timeDiff / 1440)) . " day ago";
    } elseif ($timeDiff > 2880) {
        $timeDiff = floor(abs($timeDiff / 1440)) . " days ago";
    }

    return $timeDiff;
}
2
задан yatu 11 March 2019 в 15:09
поделиться

3 ответа

Вы можете использовать re.split для разделения по нескольким критериям:

text = "The sun shine brightly, but is very cold today!"

Допустим, вы хотите разделить пробелами и запятыми:

import re
re.split( r'\s+|,\s*', text)
# ['The', 'sun', 'shine', 'brightly', 'but', 'is', 'very', 'cold', 'today!']
0
ответ дан yatu 11 March 2019 в 15:09
поделиться

Метод str.split () разделяется на пробелы и преобразуется в массив:

>>> import re
>>> s = "The sun shine brightly, but is very cold today!"
>>> re.findall( r'\s+|,\s*', s)
['The', 'sun', 'shine', 'brightly', 'but', 'is', 'very', 'cold', 'today!']

надеюсь, что вы, ребята, используете его.

0
ответ дан kartik radadiya 11 March 2019 в 15:09
поделиться

Простейшим подходом, вероятно, будет нормализация ваших данных и замена всех «запятых» и «ввода» пробелом, а затем разделение, как вы делали ранее, или использование split() из re с \s мета.

0
ответ дан Marcin Orlowski 11 March 2019 в 15:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: