![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
В MySql в одном из полей прописано
Тип: TimeStamp, По умолчанию: CURRENT_TIMESTAMP. Соответственно оно туда сует дату и время создания поля. При обращении к базе мы дергаем это поле как мне разбить это на отдельные переменные, число/месяц/час/минута ? Добавлено через 10 минут Понятно что можно обратиться как и тд. А по проще както можно? Добавлено через 18 минут И в догонку вопрос, как посчитать допустим сколько дней прошло с момента создания поля, выдает разницу только в годах. тоесть если создано в 2013 году то 0 если в 2012 то 1. Добавлено через 1 час 33 минуты Написал вот такую фигню, работает конечно...
|
|
|||||
|
А зачем ставить временную метку в виде даты?
По-моему проще, и надежнее использовать юникстайм. Запрашивать из базы последнюю метку юникс тайм, и отнимать ее от текущей. Так можно получить количество секунд прошедшее с последнего обновления метки. И, соответственно узнать часы, минуты и т.д. |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
Мне нужно не с последнего обновления а именно с момента создания поля...
Есть такая Фтука если оба значения привести к стрингу, то норм высчитывается разница между ними в секундах. |
|
|||||
|
Цитата:
Цитата:
$user_id = mysql_real_escape_string($user_id); // допустим что соединение с базой уже установлено $query = "SELECT creation_time FROM `some_table` WHERE user_id = '$user_id' LIMIT 1"; $result = mysql_query($query); $row = mysql_fetch_array($result, MYSQL_ASSOC); $unixtime = time(); $creation_time = intval($row['creation_time']); // берем из базы время создания чего-то там $minutes_since_creation = intval(($unixtime - $creation_time) / 60); // получаем количество минут $hours_since_creation = intval(($unixtime - $creation_time) / 60 / 60); // часов |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
Суть я понял, не понял разницы между
и Чем юникстайм лучше? |
|
|||||
|
Тем что не будет никаких дополнительных манипуляций, типа разбиения строки, проверки каждой ее отдельной части и расчета секунд.
Тем более с датой вариант не всегда будет правильно работать, особенно если часовые пояса не так выставить на сервере. |
|
|||||
|
Регистрация: Feb 2013
Сообщений: 176
|
Если мне память не изменяет, то при выборке можно делать UNIX_TIMESTAMP(field) и сразу получать готовый таймштамп. умножаем его на 1000, и создаем новый объект Date от этого значения. И не надо ничего преобразовывать, парсить, разбивать.
ЗЫ. ну либо я не так понял вопрос) |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|