Поддержка Проблемы и решения Добавить время к дате публикации

  • Решено dmitriy88

    (@dmitriy88)


    С помощью какой функции можно добавить время к дате публикации поста.
    В функции date это делается с помощью strtotime
    $currentdate = date("YmdHi", strtotime("+1 hours"));
    Но вот для функции get_the_date("YmdHi"); это не работает.

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • get_the_date меняйте на get_the_time('j F, Y в H:i')

    извиняюсь, не понял вопроса.

    Мне это нужно для «времени жизни» поста. Я сейчас вручную задаю параметр даты окончания публикации. Мне нужно, чтобы в переменной автоматически записывалась дата публикации + 5 часов, чтобы пост «жил» 5 часов после момента публикации.

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

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

    • Ответ изменён 7 лет, 1 месяц назад пользователем dmitriy88.

    да все я понял
    плагин https://wordpress.org/plugins/post-expirator/
    в настройке Default Date/Time Duration: можно поставить что-то типа +1 week 2 days 4 hours 2 seconds.
    так что или используйте плагин или выдерите из него нужный код.

    Как я понимаю, нужно смотреть в сторону этой строки?
    $ts = time() + (strtotime($custom) - time());
    Как учесть переход на следующий день? Например, для даты 24 апреля 2017 года 22:00 запишется строка 201704242200, затем я прибавлю другой массив +3 часа, получится 201704242500, а нужно 201704250100.

    Модератор Yuri

    (@yube)

    Как учесть переход на следующий день?

    Использовать UNIX TIME, а не «текст»…

    Например, для даты 24 апреля 2017 года 22:00 запишется строка 201704242200

    и тогда запишется число 1493060400, к которому можно просто добавить 10800 (3 часа), не беспокоясь о переходе на следующий день.

    Кстати, time() возвращает именно число, а не строку 201704242200.

    И не стоит забывать о таймзоне.

    time() взято из кода плагина. Я использую функцию get_the_date("YmdHi"), которая возвращает дату публикации поста в формате 201704242200.

    Модератор Yuri

    (@yube)

    Я использую функцию get_the_date(«YmdHi»), которая возвращает дату публикации поста в формате 201704242200.

    Так используйте get_the_date("U"). Или это вопрос принципа?

    Автор dmitriy88

    (@dmitriy88)

    Спасибо за помощь, все получилось. Честно говоря, я раньше и не знал о UNIX TIME.

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Тема «Добавить время к дате публикации» закрыта для новых ответов.