ФорумРазработкаБазы данных → Добавить дату в БД

Добавить дату в БД

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 5 августа 2010 г. 6:22

    Дата хранится в формате YYYY-MM-DD
    Пользователю для удобства предоставляется возможность вводить в формате DD.MM.YYY

    Вопрос: Как запихнуть дату в одном формате в базу где она хранится в другом формате, и при этом не пользоваться сторонними функциями типа preg_replace?
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 5 августа 2010 г. 6:27, спустя 4 минуты 36 секунд

    я, конечно, только учусь пыхе, но в бд храню time()… мб глупо, но мне удобно))
    Высокоуровневое абстрактное говно
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 5 августа 2010 г. 6:38, спустя 10 минут 44 секунды


    я, конечно, только учусь пыхе, но в бд храню time()… мб глупо, но мне удобно))
    глупо, надо хранить в timestamp, а ты явно юзаешь int
    Спустя 108 сек.
    почитай про фун-ии работы с датой и временем, что в php, что в mysql
    adw/0
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 5 августа 2010 г. 6:42, спустя 3 минуты 51 секунду


    $sql->Query("INSERT INTO table SET data=FROM_UNIXTIME(".mktime (0,0,0,MM,DD,YYYY).")");

    как то так
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 5 августа 2010 г. 6:45, спустя 3 минуты 50 секунд

    Professor,
    $tmp = explode('.','32.02.2112');
    $date = $tmp[2].'-'.$tmp[1].'-'.$tmp[0];

    =)
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 5 августа 2010 г. 6:50, спустя 4 минуты 32 секунды

    str_replace(".", "-", $time);
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 5 августа 2010 г. 6:52, спустя 2 минуты 27 секунд

    $date = join('-', explode('.','32.02.2112'));

    Сапожник без сапог
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 5 августа 2010 г. 7:03, спустя 10 минут 20 секунд

    $date = join('-', array_reverse(explode('.','32.02.2112')));

    Спустя 13 сек.
    XD
    Высокоуровневое абстрактное говно
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 5 августа 2010 г. 7:05, спустя 2 минуты 5 секунд


    $date = join('-', explode('.','32.02.2112'));


    +1, тоже хотел написать))
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 5 августа 2010 г. 7:07, спустя 2 минуты 17 секунд

    adw0rd, именно в данной ситуации sr_replace самый ад))
    Сапожник без сапог
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 5 августа 2010 г. 7:09, спустя 1 минуту 45 секунд

    блин… терь придется мудохаться с timestamp… адво, где ты раньше был, до того, как я начал писать эту хрень -_-
    Высокоуровневое абстрактное говно
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 5 августа 2010 г. 7:16, спустя 7 минут 2 секунды

    а я храню в
    date,
    datetime
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 5 августа 2010 г. 7:33, спустя 16 минут 36 секунд

    Я предполагал что есть функция у MySQL типа DATE_FORMAT что бы это примерно так выглядело :

    "INSERT INTO table SET data=DATE_FORMAT('{$date}','%d.%m.%Y')"


    ну типа %d.%m.%Y мы ему показываем в каком формате мы ему данные предоставляем, а там он сам переводит в тот который ему нужен.


    С помощью сторонних функций(блин, повторяюсь) самое простое это
    $date=preg_replace("#([0-9]{2})\.([0-9]{2})\.([0-9]{4})#i","\\3-\\2-\\1",$date);
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 5 августа 2010 г. 7:35, спустя 2 минуты 27 секунд

    а вообще удобней когда 3 поля: день, месяц (дропдаун), год
    Спустя 21 сек.
    четвертьтыщииы!!
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 5 августа 2010 г. 7:52, спустя 17 минут 28 секунд

    четвертьтыщииы!!

    ой ну как ребенок
    Спустя 12 сек.
    Сообщений: д-о-х-у-я!

    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!