Forum Webscript.Ru
Программирование => PHP => Тема начата: xax от 22 Декабря 2004, 19:59:04
-
Как отсортировать по дате элементы вида:
$a=2 декабря 2004
$b=4 июня 2004
$c=26 сентября 1998
-
привести к нормальному формату и отсортировать
-
RomikChef Это я понимаю, но как быть если много таких операторов со значениями даты, то каждую из них разюивать в массив потом переставлять это невозможно, как тут быть?
-
xax:
каждую из них разюивать в массив потом переставлять это невозможно
нету ножек - нет и варенья
-
xax:
операторов со значениями даты
интересно, но операторов я еще не заметил.
Это что все в ручную набирается ?
Если так то придется как сказал RomikChef.
далее приведу свой алгоритм
1. выбираешь все из поля содержащую даты.
2. В теле цикла разбиваешь массив и как тебе угодно меняешь строчные буквы на цифры(из известных тебе способов),тем самым приводя данные в формат даты МуSQL т.е. гггг-мм-дд.
3. Записывешь нормальный формат в поле дата.
4. Сортируешь.
RomikChef
Если где то ошибся прошу поправить, так как выше перечисленное не пробывал осуществлять на практике.
-
for_i_0:
2. В теле цикла разбиваешь массив и как тебе угодно меняешь строчные буквы на цифры(из известных тебе способов),тем самым приводя данные в формат двты МуSQL т.е. гггг-мм-дд.
3. Записывешь нормальный формат в поле дата.
4. Сортируешь.
Я обычно привожу в тот формат (а чаще всего просто пишу гггг-мм-дд) и делаю это стрингом, а не датой. Тогда MySQL сортирует без проблем.
-
for_i_0
chakra
xax
localtime...
-
chakra:
и делаю это стрингом, а не датой. Тогда MySQL сортирует без проблем.
можно поподробнее эту глубокую мысль развить? я не очень уловил насчет стрингов.
-
варчар...
На яве переписалась, сорри. Дальше, ведь, не надо объяснять?
-
надо-надо!
вот это как раз и надо объяснить.
про проблемы с сортировкой и хранение даты в поле типа варчар.
-
Может я что-то не поняла, но в базе у меня поле в таблице
my_date varchar (10)
в него пишу всегда дату в формате 2004.12.01
order by my_date
прекрасно все сортируется в нужном порядке
-
То есть, ты считаешь, что все многообразие форматов даты (http://dev.mysql.com/doc/mysql/ru/Date_and_time_types.html) команда mysql придумала исключительно для собственного развлечения?
А манипуляции над датами (разницу в днях, сложение-вычитание, сравнение и так далее - в общем, все то, что прекрасно делается взапросах (http://dev.mysql.com/doc/mysql/ru/Date_calculations.html) с помощью многочисленныхфункций (http://dev.mysql.com/doc/mysql/ru/Date_and_time_functions.html)) проще делать на коленке в пхп скрипте?
-
Ты ошибаешься.
В базе есть прекрасные встроенные типы полей, специально придуманные для даты. И именно ими надо пользоваться.
Начиная с того, что стандартное поле занимает меньше места и заканчивая тем, что вчисления, сравнения и группировку можно производить прямо в запросе - для чего, собственно, база и придумана.
-
RomikChef, ошибаюсь. Я знаю, что мой способ далек от того, как надо программировать, используя все возможности языка. Просто у меня личная нелюбовь к типу даты. Посему так и пишу. Я же не утверждаю, что мой способ самый лучший :) Просто привела пример, как вариант сортировки.
-
Хех.
А зачем приводить неправильное ошибочное мнение как пример?
Если это твои личные заморочки, и ты понимаешь, что это ошибка - зачем другим-то советовать?
И почему ты вообще решила, что речь идет о БД?
-
Может я что-то не поняла, но в базе у меня поле в таблице
my_date varchar (10)
в него пишу всегда дату в формате 2004.12.01
order by my_date
прекрасно все сортируется в нужном порядке
:super:
РЕСПЕКТ!!!! это надо в ЮМОР!!! :):):)
-
Блин, вы в mysql полезли, я вообще с этим пока не дружу, у меня база из текстового файла состоит, я хотел услышать лагоритмы, пока услышал только один, ром, если можешь распиши по подробнее алгоритм решения этой задачи
Прошу привести ещё примеры решения и ещё нельзя - ли перевести значения операторов в формат даты и сортировать уже так
-
xax
повторяю !!! localtime !!! тебе поможет...
-
commander
а чуть более развернуто тебя не затруднит пояснить свой ответ?
-
commander Поддерживаю ромика
-
xax
ты особо не надейся.
врядли этот девелопер сможет тебе чем-то помочь
-
RomikChef объясни ты свой метод по - подробнее
-
так тебе его объяснили уже
for_i_0 , например.
да и сам ты, вроде бы писал, что понимаешь - "разюзивать в массив"
-
RomikChef А как быть если разюзивать надо 100 штук?
-
точно так же, как и одну.