Html не читает html тэг при добавлении тэга в элемент

Пример использования:

echo time_diff_string('2013-05-01 00:22:35', 'now');
echo time_diff_string('2013-05-01 00:22:35', 'now', true);

Выход:

4 months ago
4 months, 2 weeks, 3 days, 1 hour, 49 minutes, 15 seconds ago

Функция:

function time_diff_string($from, $to, $full = false) {
    $from = new DateTime($from);
    $to = new DateTime($to);
    $diff = $to->diff($from);

    $diff->w = floor($diff->d / 7);
    $diff->d -= $diff->w * 7;

    $string = array(
        'y' => 'year',
        'm' => 'month',
        'w' => 'week',
        'd' => 'day',
        'h' => 'hour',
        'i' => 'minute',
        's' => 'second',
    );
    foreach ($string as $k => &$v) {
        if ($diff->$k) {
            $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
        } else {
            unset($string[$k]);
        }
    }

    if (!$full) $string = array_slice($string, 0, 1);
    return $string ? implode(', ', $string) . ' ago' : 'just now';
}
-2
задан haldo 23 March 2019 в 19:25
поделиться

1 ответ

Вы путаете две разные функции, которые обе называются after.

Когда вы вызываете $(something).after(), вы вызываете метод jQuery after , который говорит:

HTML-строка, элемент DOM, текстовый узел, массив элементов и текст узлы или объект jQuery для вставки после каждого элемента в наборе соответствующих элементов.

Когда вы вызываете $(something)[index].after(), вы извлекаете элемент DOM из объекта jQuery и вызываете метод DOM after , который сообщает:

[1113 ] Объекты DOMString вставляются как эквивалентные текстовые узлы.


Используйте $(something).eq(index), чтобы получить объект jQuery, содержащий одно из совпадений, если вы хотите использовать метод jQuery after.

0
ответ дан Quentin 23 March 2019 в 19:25
поделиться
Другие вопросы по тегам:

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