Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Переводим час:мин:сек в секунды и в iso 8601 формат времени для микроразметки фильмов

Тема в разделе "Хаки DLE", создана пользователем DLEPlugins, 8 сен 2016.

08.09.16 в 16:49
29.01.19 в 21:30
39
2.498
2
  1. byroot

    Команда форума Администратор VIP Кинотрафик v2

    Регистрация:
    10 окт 2015
    Сообщения:
    10.517
    Лучших ответов:
    38
    Рейтинги:
    +4.306 / 36 / -39
    foxrus
    не самый лучший вариант, но рабочий:
    PHP:
    $myxfields $row['xfields'];
    $myxfdata xfieldsdataload$myxfields );
    $duration=strip_tags($myxfdata['time']);
    $search_duration="мин.";
    if (
    strstr($duration$search_duration)) {
    $duration explode(" мин."strip_tags($myxfdata['time']));
    $tpl->set('{duration}'$duration[0]*60);
    } else {
    list(
    $hours$mins$secs) = explode(':'$duration);
    $duration=($hours 3600 ) + ($mins 60 ) + $secs;
    $tpl->set('{duration}'$duration);

    time - это название доп поля.

    может кодеры предложат более компактный вариант.
     
  2. foxrus

    foxrus Посетитель

    Регистрация:
    12 апр 2017
    Сообщения:
    70
    Лучших ответов:
    0
    Рейтинги:
    +6 / 0 / -0

    Спасибо. Я так понял {duration} вставлять вместо {seotime} - <meta itemprop="duration" content="{seotime}"/>
     
  3. foxrus

    foxrus Посетитель

    Регистрация:
    12 апр 2017
    Сообщения:
    70
    Лучших ответов:
    0
    Рейтинги:
    +6 / 0 / -0
    И еще вопрос - А как же PT...S?
     
  4. byroot

    Команда форума Администратор VIP Кинотрафик v2

    Регистрация:
    10 окт 2015
    Сообщения:
    10.517
    Лучших ответов:
    38
    Рейтинги:
    +4.306 / 36 / -39
    да. {duration} - будет выводиться в секундах. если {seotime}, то можно использовать мой вариант.
    логично же, что у нас есть секунды - это {duration} в шаблоне полной новости, и как вывести PT*S? Конечно же - PT{duration}S и в гугле не будет ошибок:
    2019-01-05_11-49-34.png
     
    • Нравится Нравится x 1
  5. foxrus

    foxrus Посетитель

    Регистрация:
    12 апр 2017
    Сообщения:
    70
    Лучших ответов:
    0
    Рейтинги:
    +6 / 0 / -0
    Круто, ошибка пропала, спасибо большое.
     
  6. sneiks

    Команда форума VIP Кинотрафик v2

    Регистрация:
    27 янв 2016
    Сообщения:
    273
    Лучших ответов:
    0
    Рейтинги:
    +38 / 0 / -1
    byroot Скажи пожалуйста как обработать 2 часа 20 минут тоесть нужно убрать и "часа" и "минут"????

    Вариант tyz75 выводит ~
     
    #26 sneiks, 27 янв 2019
    Последнее редактирование: 27 янв 2019
  7. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    195
    Лучших ответов:
    1
    Рейтинги:
    +93 / 14 / -4
    А если часа нет то как отображается ?
     
  8. sneiks

    Команда форума VIP Кинотрафик v2

    Регистрация:
    27 янв 2016
    Сообщения:
    273
    Лучших ответов:
    0
    Рейтинги:
    +38 / 0 / -1
    ~ 42 минуты

    Может кто то может написать мини парсер что бы переписать доп. поле с временем ??? Разумеется отблагодарю !

    Всё это вставляет "Parser Kino Poisk"

    Capture.JPG
     
    #28 sneiks, 27 янв 2019
    Последнее редактирование: 27 янв 2019
  9. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    195
    Лучших ответов:
    1
    Рейтинги:
    +93 / 14 / -4
    Сейчас попробую =) Только что просто сделал себе то что надо. По такому же принципу.
     
    • Нравится Нравится x 1
  10. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    195
    Лучших ответов:
    1
    Рейтинги:
    +93 / 14 / -4
    Получается с вариантом 2 часа 20 минут, а вот если ~ 42 минуты или 1 час 30 минут то засада. Попробую поковырять еще.
     
  11. sneiks

    Команда форума VIP Кинотрафик v2

    Регистрация:
    27 янв 2016
    Сообщения:
    273
    Лучших ответов:
    0
    Рейтинги:
    +38 / 0 / -1
    Может есть парсер которым обновить время что бы получилось: 182 мин. ??? Можно было или с MW или КП...
     
  12. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    195
    Лучших ответов:
    1
    Рейтинги:
    +93 / 14 / -4
    Это к кодерам.
     
  13. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    195
    Лучших ответов:
    1
    Рейтинги:
    +93 / 14 / -4
    Код:
    $time = explode(" мин", $xfieldsdata['ДОП_ПОЛЕ']);
            $seconds = $time[0]*60;
            $duration = date("H:i:s", mktime(0, 0, $seconds));
            $seotime = 'PT'.$seconds.'S';
            $tpl->set( '{seconds}', $seconds ); 
            $tpl->set( '{duration}', $duration );
            $tpl->set( '{seotime}', $seotime );
    В доп поле к примеру 92 мин. , вывод возможен: {seconds} - 5520, {duration} - 01:32:00, {seotime} - PT5520S
     
    • Нравится Нравится x 1
  14. sneiks

    Команда форума VIP Кинотрафик v2

    Регистрация:
    27 янв 2016
    Сообщения:
    273
    Лучших ответов:
    0
    Рейтинги:
    +38 / 0 / -1
    Спасибо! осталось найти кодера который напишет парсер что бы спарсить заново время... и в формате 92 мин.
     
  15. PunPun

    PunPun Гуру

    Регистрация:
    11 июн 2015
    Сообщения:
    7.311
    Лучших ответов:
    17
    Рейтинги:
    +3.882 / 39 / -83
    какие теги нужны?
     
  16. sneiks

    Команда форума VIP Кинотрафик v2

    Регистрация:
    27 янв 2016
    Сообщения:
    273
    Лучших ответов:
    0
    Рейтинги:
    +38 / 0 / -1
    Продолжительность: 92 мин.
     
  17. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    195
    Лучших ответов:
    1
    Рейтинги:
    +93 / 14 / -4
    Насколько я понял у него разного рода значения (с разными окончаниями) в данный момент, к примеру ~ 42 минуты, 2 часа 20 минут, 1 час 33 минуты, ему надо всё привести к виду 92 мин.
     
  18. PunPun

    PunPun Гуру

    Регистрация:
    11 июн 2015
    Сообщения:
    7.311
    Лучших ответов:
    17
    Рейтинги:
    +3.882 / 39 / -83
    PHP:
    if (strpos($xfieldsdata['ДОП_ПОЛЕ'], 'час') !== FALSE) {
        
    $time explode(' '$xfieldsdata['ДОП_ПОЛЕ']);
        
    $seconds intval($time[0]) * 3600;
        
    $minute = (intval($time[0]) * 60) + intval($time[2]);
    } elseif (
    strpos($xfieldsdata['ДОП_ПОЛЕ'], 'минут') !== FALSE) {
        
    $time explode(' '$xfieldsdata['ДОП_ПОЛЕ']);
        
    $seconds intval($time[1]) * 60;
        
    $minute intval($time[1]);
    }
    if (
    $seconds) {
        
    $tpl->set('{seconds}'$seconds);
        
    $tpl->set('{duration}'$minute ' мин.');
        
    $tpl->set('{seotime}''PT' $seconds 'S');
    }
    {seconds} - выведет продолжительность фильма / сериала в секундах (7200)
    {duration} - выведет продолжительность фильма / сериала в минутах (92 мин.)
    {seotime} - для разметки
     
  19. AKapone

    AKapone Зелёный

    Регистрация:
    29 янв 2019
    Сообщения:
    10
    Лучших ответов:
    0
    Рейтинги:
    +1 / 0 / -0
    О, ТС, ты меня реально выручил!
     
  20. sneiks

    Команда форума VIP Кинотрафик v2

    Регистрация:
    27 янв 2016
    Сообщения:
    273
    Лучших ответов:
    0
    Рейтинги:
    +38 / 0 / -1
    PunPun Напишешь пожалуйста парсер что бы заново спарсить время??? Или кто то другой может то сделать ? За $ разумеется ...
     
Яндекс.Метрика