1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

изменить формат даты

Тема в разделе "Web Coding", создана пользователем zeta, 24 ноя 2007.

Статус темы:
Закрыта.
Модераторы: latteo
  1. zeta

    zeta Постоялец

    Регистр.:
    26 сен 2006
    Сообщения:
    112
    Симпатии:
    8
    Здравствуйте. Такой вопрос: у меня в базе данных даты записаны в формате 26.02.2007 12:46:33, к примеру, а мне их нужно привести к виду 1172483193?

    То есть мне нужно не просто вывести дату в нужном формате, а в самой базе преобразовать эти значения в формат unix. Какой update делать - чего-то не соображу совсем.
     
  2. Damaged

    Damaged Писатель

    Регистр.:
    20 ноя 2007
    Сообщения:
    9
    Симпатии:
    0
    mysql> SELECT unix_timestamp(STR_TO_DATE('26.02.2007 12:46:33', '%d.%m.%Y %H:%i:%s'));
    -> 1172483193
     
  3. zeta

    zeta Постоялец

    Регистр.:
    26 сен 2006
    Сообщения:
    112
    Симпатии:
    8
    Прошу не пинаться :) и не ругаться, потому как сама понимаю, что туплю и тем не менее - мне нужен код, который преобразует значения непосредственно в самой базе данных, причем все (а их там больше 30 000). Если не трудно - напишите php код. У меня ну никак не получается. В базе есть поле $date, в нем значения вида
    26-02-2007. Я перехожу на другой скрипт, поэтому мне нужно конвертировать базу данных, в новой базе $date должно быть формата 1172483193. Заранее спаисбо
     
  4. Damaged

    Damaged Писатель

    Регистр.:
    20 ноя 2007
    Сообщения:
    9
    Симпатии:
    0
    Работающий, но бестолковый и идеологически неверный код. Не забывайте делать бэкапы :)
    PHP:
    <?php
    $dbhost 
    "127.0.0.1";
    $dbuser "root";
    $dbpassword "";
    $serverdb "nulled";

    $connect mysql_connect($dbhost$dbuser$dbpassword);
    if (!
    $connect) {
        die (
    "Could`nt Connect");
        }
    if (! 
    mysql_select_db($serverdb$connect) ) {
        die (
    "db select error");
        }


    $req mysql_query ("SELECT date FROM date");
    while (
    $req_array mysql_fetch_array ($req))
        {
            
    $get_new mysql_query("SELECT unix_timestamp(STR_TO_DATE('" $req_array['date'] . "', '%d.%m.%Y %H:%i:%s'))");
            while (
    $get_new_array mysql_fetch_array ($get_new))
                {
                    
    mysql_query ("UPDATE date set date = '" $get_new_array[0] . "' where date = '" $req_array['date'] . "'");
                }
        }

    ?>
     
  5. Bu4man

    Bu4man Создатель

    Регистр.:
    15 окт 2007
    Сообщения:
    24
    Симпатии:
    1
    Какого типа поле date? Выведи его по: desc TABLE_NAME.
    Если тип CHAR/VARCHAR/TEXT, то всё можно сделать простым:
    update TABLE_NAME set date=unix_timestamp(STR_TO_DATE(date, '%d.%m.%Y %H:%i:%s'));
    Если тип не такой - отпишись.
    P.S. В любом случае, как уже сказали, бекап будет не лишним.
     
  6. zeta

    zeta Постоялец

    Регистр.:
    26 сен 2006
    Сообщения:
    112
    Симпатии:
    8
    Спасибо :) Мне толковый и идеологически правильный не нужен. Он мне нужен был на один раз, чтобы изменить даннеы в базе, так что главное - что он сработал :)

    Странно, не нашла кнопку как спаисбо сказать :(. Подскажите - ибо с меня причитается
     
Статус темы:
Закрыта.