Про даты, помогите никак не разберусь

Cramac

Новичок
Originally posted by Фанат
меня больше волнует вопрос, зачем тебе в базе поле Timestamp
Это первое что пришло в голову для использования операций с датами. А так я и ищу способ, с помощью которого можно нормально оперировать с датами.

Да и с таймстамп мне казалось что база сама сможет вывести разницу в нужном виде, а при использовании time() надо будет высчитывать сколько дней, сколько часов, сколько минут и секунд.
 

Jok

Guest
2 Фанат
ДА я пробовал иначе бы не говорил...
у меня отработал прекрасно...
не знаю почему у вас не пашет...
 

Фанат

oncle terrible
Команда форума
Jok
Сейчас ты поступил очень нехорошо.
Ты соврал.
Соврал совершенно нагло и беспричинно.
соврал собвршенно бессмысленно, поскольку любой может выполнить этот безумный код и уличить тебя не только в совершенно идиотских фантазиях, что при вычитании дат получается почему-то юниксовый тайстамп, но и во лжи.

Я запрещаю тебе писать в этот форум.
Все твои сообщения будут немедленно удаляться.

-~{}~ 23.10.04 00:04:

Cramac
мне казалось что база сама сможет
Когда кажется - креститься надо.
рограммист пишет программы, а не рассматривает то, что ему кажется.
Чтобы не казалось - надо читать документацию.
Берешь, находишь функции работы с датами и смотришь - может база то, что тебе надо, или нет.

Далее. Тип поля timestamp НЕЛЬЗЯ выбирать по принципу каких-то манипуляций. Этот тип поля можно выбирать только исходя из одного его свойства - автоматичесого обновления.
Если тебе это свойство не нужно, то и тип поля не нужен.
полдбери себе другой подходящий тип.

Далее.
С вопросами ты воими разобрался?
Первый ясен, вроде бы?
Во втором ты можешь воспользоваться функцией unix_timestamp, применив ее к вычитаемым датам, и уже с ее результатом работать как с секундами, как ты и собирался.
Все ясно?
 

Cramac

Новичок
Originally posted by Фанат
Все ясно? [/B]
Все понятно. Вот такое решение получил:


$events_time = "1098775138"; //время занесения в базу
$time_left = $events_time - time();
$time_left = (floor($time_left/86400))."d ".floor(($time_left-(floor($time_left/86400)*86400))/3600)."h ".floor(($time_left-(floor($time_left/3600)*3600))/60)."m ".floor($time_left-(floor($time_left/60))*60)."s";
echo $time_left; // сколько осталось времени.

-~{}~ 23.10.04 11:36:

Только вот вопрос. А с переходом к зимне-летнему времени нормально все будет?
 

Фанат

oncle terrible
Команда форума
$events_time = "1098775138"; //время занесения в базу
если время ЗАНЕСЕНИЯ, то значит,. это уже БЫЛО.
$time_left = $events_time - time();
как может быть время прошлого события быть меньше текущего момента? Ты изобрел машину времени?
 

Cramac

Новичок
Originally posted by Фанат
если время ЗАНЕСЕНИЯ, то значит,. это уже БЫЛО.

как может быть время прошлого события быть меньше текущего момента? Ты изобрел машину времени?
Да нет еще.... Все нормально работает, я просто дату начальную вписал...
Сейчас у меня вот такие даты:

Начало: 23.10.2004 11:28:18
Конец: 22.11.2004 10:28:18
разница : 29дн. 23ч 10мин 17с (высчитал используя вышеописанный метод)
 
Сверху