Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Смена формата даты в MySQL
Bizon4ik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 97
Пользователь №: 29749
На форуме: 5 лет, 9 месяцев, 27 дней
Карма:




Доброе время суток.

У меня в форму c type=text водится дата в формате 06.05.2013, но в MySQL необходимо записывать в формате 2013.05.06 и как следствие в базу записывается не правильная дата.
Подскажите плз как откоректировать данные из формы дабы они правильно записывались в базу.
Заранее спасибо.

Это сообщение отредактировал Bizon4ik - 6.05.2013 - 17:57
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
exotica  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Code noobing... :))
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 740
Пользователь №: 36599
На форуме: 4 года, 5 месяцев, 5 дней
Карма: 22

Не курю:
4 года, 4 месяца, 23 дня


Цитата из первой попавшейся ссылки после запроса в google

Цитата
Задача
Вы хотите изменить формат, в котором MySQL представляет значения дат.

Решение
Это невозможно. Однако вы можете при сохранении данных преобразовать их в нужный формат, а при отображении привести их практически к любому виду, используя функцию DATE_FORMAT().

Обсуждение
Формат CCYY-MM-DD, используемый MySQL для значений дат, соответствует стандарту ISO 8601 представления дат. Удобство этого формата в том, что год, месяц и день в нем имеют фиксированную длину и появляются в строке даты слева направо, так что даты естественным образом сортируются в правильном хронологическом порядке. Но формат ISO используется не во всех системах баз данных, что может вызвать проблемы при перемещении данных из одной СУБД в другую. Кроме того, многие предпочитают другие форматы дат, такие как MM/DD/YY или DD-MM-CCYY. Это может вызывать проблемы, связанные с несоответствием ожиданий пользователей относительно формата хранения даты и реального поведения MySQL.

Новички в MySQL часто задают вопрос: «Как указать MySQL на необходимость хранить данные в определенном формате, например MM/DD/CCYY?» Ответом, к сожалению, будет: «Никак». MySQL всегда хранит даты в формате ISO, и последствия этого факта затрагивают как ввод данных, так и отображение результирующего множества:

• Для того чтобы при вводе данных сохранить значения, имеющие формат не-ISO, следует сначала преобразовать их. (Если вы не хотите этого делать, придется хранить их как строки, например в столбце CHAR. Но тогда вы не сможете работать с ними как с датами.) В некоторых случаях, если формат значений близок к ISO, преобразование может и не потребоваться. Например, возьмем строковые значения 87-1-7 и 1987-1-7 и числа 870107 и 19870107. При загрузке в столбец DATE все они интерпретируются MySQL как дата 1987-01-07.

• Что касается отображения данных, можно представлять даты не в формате ISO, преобразовав их. Помочь в этом может функция MySQL DATE_FORMAT(), предоставляющая широкий выбор форматов вывода. Вы также можете использовать такие функции, как YEAR(), для извлечения частей дат. Дополнительная информация об изменении формата вывода приведена в главе 10, где также представленнебольшой сценарий, который выгружает содержимое таблицы с переформатированными столбцами дат.


Ключевое из выше сказанного: Помочь в этом может функция MySQL DATE_FORMAT()
Пробуйте ) только отпишите) мне тоже интересно)

Это сообщение отредактировал exotica - 6.05.2013 - 18:14


--------------------
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Bizon4ik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 97
Пользователь №: 29749
На форуме: 5 лет, 9 месяцев, 27 дней
Карма:




То что вы нашли это касается данных взятых из MySQL, а мне необходимо внести их туда в нужном формате.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ADiel  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Читайте документацию, а то обматерю!
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 944
Пользователь №: 17406
На форуме: 8 лет, 3 месяца, 14 дней
Карма: 27

Не пью :
6 лет, 16 дней


Используйте функцию date.
echo date("Y-m-d", strtotime('06.05.2013')); // 2013-05-06


P.S. Учтите, что неверная дата на входе strtotime даст результат 1970-01-01


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5662
Пользователь №: 35718
На форуме: 4 года, 8 месяцев, 1 день
Карма: 176




а еще проще заставить пользователей писать дату в формате CCYY-MM-DD и не трогать мозг ни себе ни людям
ну или как обычно делают три выпадающих списка


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ADiel  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Читайте документацию, а то обматерю!
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 944
Пользователь №: 17406
На форуме: 8 лет, 3 месяца, 14 дней
Карма: 27

Не пью :
6 лет, 16 дней


Цитата (Valick @ 6.05.2013 - 15:21)
а еще проще заставить пользователей писать дату в формате CCYY-MM-DD и не трогать мозг ни себе ни людям
ну или как обычно делают три выпадающих списка

Думаю, многие хотели бы узнать Ваш адрес и нанести грозный визит за три выпадающих списка, в которых есть 31 февраля и проч фишки


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
andrey888  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 793
Пользователь №: 27801
На форуме: 6 лет, 2 месяца, 11 дней
Карма: 14




Цитата
У меня в форму c type=text водится дата в формате 06.05.2013

зачем создавать себе проблемы чтобы их потом решать ?
---------------
Если изменить ввод даты уж никак .... То можно первоначальную дату расклеить на массив , а потом склеить в обратном = нужном вам порядке.


--------------------
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5662
Пользователь №: 35718
На форуме: 4 года, 8 месяцев, 1 день
Карма: 176




ADiel, зато там нет 57-го марта 200013 года, или мне кто-то запретит написать 57.03.200013 ?
опять же если прочитаете внимательно, то это альтернатива, да и лично я не сторонник трех выпадающих.
ну и в конце концов AJAX творит чудеса, и число можно менять в зависимости от года и месяца... доходчиво объяснил?


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
exotica  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Code noobing... :))
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 740
Пользователь №: 36599
На форуме: 4 года, 5 месяцев, 5 дней
Карма: 22

Не курю:
4 года, 4 месяца, 23 дня


Цитата
Если изменить ввод даты уж никак .... То можно первоначальную дату расклеить на массив , а потом склеить в обратном = нужном вам порядке.


Ответ вашем же сообщением))))

зачем создавать себе проблемы чтобы их потом решать ? 


Функции форматирования для этого и нужны же, или не?

Valick, все долшжно быть привычно)


--------------------
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5662
Пользователь №: 35718
На форуме: 4 года, 8 месяцев, 1 день
Карма: 176




exotica, человек не таракан, ко всему привыкнет smile.gif
мода, тренд и другие страшные слова для того и придуманы, чтобы постоянно меняться smile.gif


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
andrey888  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 793
Пользователь №: 27801
На форуме: 6 лет, 2 месяца, 11 дней
Карма: 14




Цитата
Функции форматирования для этого и нужны же, или не?

Функции форматирования к сожалению не будут принимать строку (дату) через любые разделители ...


--------------------
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
exotica  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Code noobing... :))
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 740
Пользователь №: 36599
На форуме: 4 года, 5 месяцев, 5 дней
Карма: 22

Не курю:
4 года, 4 месяца, 23 дня


Valick, хорошо! )) Объясню свою позицию следующим образом. Я иногда бываю немного скупердяем laugh.gif , поэтому просто возьму и посчитаю миллисекунды.

Человек заходит ко мне в Онлайн магазин, производит регистрацию, тратит миллисекунды на привыкание к новому формату даты, находит нужный товар, и тут ему звонит телефон и он срочно собирается и едет куда то. Как следствие - НЕ приобретая товар! А потом и вовсе про него забудет. В итоге Я останусь без прибыли из-за его потерь времени на регистрацию.

А ведь телефон мог позвонить секундами позже и он бы купил товар и принес мне прибыть, и спокойно поехал по своим делам )

Вот как то так))


--------------------
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5662
Пользователь №: 35718
На форуме: 4 года, 8 месяцев, 1 день
Карма: 176




exotica, я понял вы хотите сожрать мой моск smile.gif такого "правдоподобного" аргумента я давно не встречал)))
___
да и накой хрен мне указывать дату при регистрации в вашем магазине?))
кто вообще меня сможет заставить указать реальную дату, если это конечно не сегодняшнее число?


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
exotica  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Code noobing... :))
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 740
Пользователь №: 36599
На форуме: 4 года, 5 месяцев, 5 дней
Карма: 22

Не курю:
4 года, 4 месяца, 23 дня


Цитата
да и накой хрен мне указывать дату при регистрации в вашем магазине?))
кто вообще меня сможет заставить указать реальную дату, если это конечно не сегодняшнее число?


Магазин - это просто пример потери прибыли за счет потери времени))

Не суть в ее реальности и верности, суть в том что если ее надо будет указать то некоторые пользователи потратят на это время , т.к. увидят не привычную форму.

А некоторые и вообще не станут регистрироваться)))


--------------------
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Bizon4ik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 97
Пользователь №: 29749
На форуме: 5 лет, 9 месяцев, 27 дней
Карма:




Цитата (ADiel @ 6.05.2013 - 15:09)
Используйте функцию date.
echo date("Y-m-d", strtotime('06.05.2013')); // 2013-05-06


P.S. Учтите, что неверная дата на входе strtotime даст результат 1970-01-01

Спасибо за ответ, очень помог.

Подскажите плз, еще такой момент:
Допустим дата из формы приходит в переменной $a.
Можно ли утверждать что если $a==date("Y-m-d", strtotime($a)) то пользователь ввел дату в правильном формате?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса