За последние 24 часа нас посетили 43602 программиста и 1813 роботов. Сейчас ищут 775 программистов ...

Дата в формате UNIX TIMESTAMP

Тема в разделе "PHP для новичков", создана пользователем Miron9900, 28 фев 2019.

  1. Miron9900

    Miron9900 Новичок

    С нами с:
    28 фев 2019
    Сообщения:
    11
    Симпатии:
    0
    upload_2019-2-28_18-36-26.png
    В БД mysql дата записана в формате UNIX TIMESTAMP, как в php сделать перевод в таблице с новостями в формат **.**.**?
    Фрагмент:
    $query = "SELECT id, idate, title, announce FROM news ORDER BY id DESC LIMIT $from,$notesOnPage ";
    ...
    while ($row = mysqli_fetch_array($result)) {
    echo $row['idate'] .' ';

    Заранее благодарен
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    в формат хрен_его_знает ?
    PHP:
    1. mysql> SELECT UNIX_TIMESTAMP('2005-03-27 03:00:00');
    2. +---------------------------------------+
    3. | UNIX_TIMESTAMP('2005-03-27 03:00:00') |
    4. +---------------------------------------+
    5. |                            1111885200 |
    6. +---------------------------------------+
    7. mysql> SELECT UNIX_TIMESTAMP('2005-03-27 02:00:00');
    8. +---------------------------------------+
    9. | UNIX_TIMESTAMP('2005-03-27 02:00:00') |
    10. +---------------------------------------+
    11. |                            1111885200 |
    12. +---------------------------------------+
    13. mysql> SELECT FROM_UNIXTIME(1111885200);
    14. +---------------------------+
    15. | FROM_UNIXTIME(1111885200) |
    16. +---------------------------+
    17. | 2005-03-27 03:00:00       |
    18. +---------------------------+
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    В MySQL есть тип TIMESTAMP и он выглядит не так )))
    целое число секунд превращается в строку функцией date. например так:

    PHP:
    1. echo date('d.m.y', $row['idate']);
    на результат влияет часовой пояс.
     
    Miron9900 нравится это.
  4. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @artoodetoo, зачем если можно сразу нужное взять из БД?

    SELECT DATE(FROM_UNIXTIME(1329163200))

    $query = "SELECT id, DATE(FROM_UNIXTIME(idate)), title, announce FROM news ORDER BY id DESC LIMIT $from,$notesOnPage ";
     
  5. Miron9900

    Miron9900 Новичок

    С нами с:
    28 фев 2019
    Сообщения:
    11
    Симпатии:
    0
    Спасибо, работает
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    Не за что
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    @Valick Я не знаю как эти данные используются в скриптах ТСа. Наверное есть причина зачем они в timestamp. Изменит их на входе и всё по пизде пойдёт. Поэтому я предлагаю форматировать их на выводе на страницу, а не на приеме из запроса.
    --- Добавлено ---
    Моё личное предпочтение: по возможности держать данные в "натуральном" виде. В строку надо превращать на выводе. Где-то один формат нужен, а где-то другой.

    Наприме Laravel умеет кастить поля таблиц в DateTime. А в шаблоне мы его превращаем в строку по нужному формату.

    Надеюсь ты меня правильно прочитаешь на этот раз ;)
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Для спасибо есть кнопка с большим пальцем вверх.