Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> дата в phpBB 
:(
    Опции темы
x77
Дата 11.2.2004, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: нет
Всего: 22



на форумах, подобных данному, даты и время сообщений хранятся в полях MySql-таблиц, будучи объявленными, как int (11). кто-нить знает, как оттуда получить осмысленное значение? нужен именно алгоритм, а не какая-то функция движка. или хотя бы иходник такой функции.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Secandr
Дата 11.2.2004, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



x77 Насколько помню есть MAKE_DATE, если мне память не изменяет.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
x77
Дата 11.2.2004, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: нет
Всего: 22



Secandr, я догадываюсь, что какая-то функция есть, иначе непонятно, а как, например, здесь выводится время и дата. в том-то и заключается вопрос: а как она (эта функция) работает? мне надо сделать тоже самое не в пхп, а в сторонней программе, которая получает данные из базы в сыром виде.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Secandr
Дата 11.2.2004, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



x77 RTFM
Я вот так люлблю дату выводить:
SQL
SELECT DATE_FORMAT(txt.`open`,'%e.%c.%y [color=orange]<font size=1>%k:%i:%s</font>'[/color]) 'open' FROM txt

Только open здель не int, а DATETIME.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
x77
Дата 11.2.2004, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: нет
Всего: 22



Secandr, при чём здесь RTFM??

во-первых, меня не хотелось бы прописывать конвертацию в самом запросе. это крайний случай. во-вторых, даже если делать это так... ты вообще читаешь, что я пишу? в MySql поддерживается три типа дат, кроме этого можно хранить её в обычном текстовом виде. но кому-то этого показалось мало, и они воткнули собственный формат, объявленный как int (11). отдалённо он смахивает на TimeStamp, но это не он, потому что конвертация чушь выдаёт полную. если только у нас на дворе не 3048 год.

если ты мне процитируешь RTFM, где описаны шаманские блудни разработчиков движка phpBB, я тебе буду очень благодарен.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Secandr
Дата 11.2.2004, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



x77 Тогда давай пример твоего "особого" формата времени. Будем смотреть.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
x77
Дата 11.2.2004, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: нет
Всего: 22



например, 1075992654 соответствует Thu Feb 05, 2004 2:45 pm, т.е. 05.02.2004 02:45. значения идут инкрементально, т.е поздняя дата соответствует большему значению. мне кажется, что дата хранится как кол-во дней, прошедших с определённого дня какого-то года, а время - как кол-во секунд с 0. но выделить то или другое у меня не вышло. я пробовал преобразовывать не только к TimeStamp, но и к FileDate (формат DOS), и к SYSTEMTYME (формат виндовой API) и к своему родному дельфийскому TDateTime. ничего осмысленного не получил.

собственно, если ты модер, то открой любую таблицу на этом форуме, типа phpbb_topics, и ты увидишь там поле topic_time, объявленное как int (11). это именно оно и есть. в самих топиках движок всё выводит корректно. в пхп я отнюдь не гуру, и в открытых сорсах движка ничего путного я не нашёл.

какие будут мысли? smile.gif


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
__vi
Дата 11.2.2004, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 21.1.2004

Репутация: нет
Всего: -1



Как int(11) ??
У меня в таблицах всё хранится как тип дата только забыл как точно тип называется, но вроде date или что-то вроде.
PM MAIL   Вверх
__vi
Дата 11.2.2004, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 21.1.2004

Репутация: нет
Всего: -1



Ага, вот, datetime
PM MAIL   Вверх
__vi
Дата 11.2.2004, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 21.1.2004

Репутация: нет
Всего: -1



1075992654 - так это разве не количество секунд после определённой даты (типа 1978.1.1 00:00:00)?
PM MAIL   Вверх
x77
Дата 11.2.2004, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: нет
Всего: 22



__vi
Цитата
Как int(11) ??

у тебя что, тоже форум на движке phpBB 2.0.6? и там у тебя дата хранится как datetime? ты путаешь что-то.

Цитата
1075992654 - так это разве не количество секунд после определённой даты (типа 1978.1.1 00:00:00)?

похоже. но высчитать по этому принципу дату и время у меня не вышло. видимо, туп, аки бенгальская лошадь.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
__vi
Дата 11.2.2004, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 21.1.2004

Репутация: нет
Всего: -1



array getdate ( [int timestamp]);
http://www.zend.com/manual/function.getdate.php

Получилось?


PM MAIL   Вверх
x77
Дата 11.2.2004, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: нет
Всего: 22



а что могло получится?

ещё раз. я работаю в дельфях. делаю запрос к базе. получаю ответ. он содержит даты в этом грёбанном формате. пхп и всё остальное вообще не при чём. конвертить дату в самом запросе я не хочу, и для этого есть очень веские причины. проблема состоит в том, чтобы программными средствами расшифровать значение, которое лежит в таблице. т.е. мне не нужна функция, которая выполняет эту конвертацию в пхп, мне нужен алгоритм её работы. или исходник на любом языке: паскале, си, ассемблере, без разницы.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
__vi
Дата 11.2.2004, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 21.1.2004

Репутация: нет
Всего: -1



Ок, сори, ща найду откуда идет отсчёт
PM MAIL   Вверх
__vi
Дата 11.2.2004, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 21.1.2004

Репутация: нет
Всего: -1



Отчёт идёт с 1 января 1970 года
А MySQL поддерживает такое FROM_UNIXTIME(unix_timestamp,format)
mysql> SELECT FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'

Т.е. прямо в запросе можно всё уладить.

http://www.mysql.com/doc/en/Date_and_time_..._functions.html

Это сообщение отредактировал(а) __vi - 11.2.2004, 19:15
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.