strftime sqlite
#1

Привет. Суть вопроса: как показать пользователю разницу двух дат формата dd.mm.yyyy hh:mm:ss
код:
PHP код:
db_query (sys_db"INSERT INTO `database` (`olddate`) VALUES (strftime('%d.%m.%Y в %H:%M:%S', 'now', '15 day'))");
sys_result db_query (sys_db"SELECT * FROM `database` WHERE `olddate` < strftime('%d.%m.%Y %H:%M:%S', 'now', 'localtime')");
for(new 
i!= db_num_rows (sys_result); ++i)
{
    
//?
    
db_next_row (sys_result);

к примеру в виде сообщения <<Это будет через 15 дней>>

у меня лишь идея записывать разницу в отдельный столбец и затем показывать, может можно и проще?

просто сообщение:
PHP код:
db_get_field_assoc (sys_result"olddate"date24);
format (..., ..., "Это будет %s"date); //Это будет 23.04.2014 в 23:59:59 
не подходит.
Reply
#2

Unix Time + конвертация секунд в формат "dd.mm.yyyy hh:mms"?
Reply
#3

Код:
SELECT FROM_UNIXTIME(`now` - `olddate`, '%d.%m.%Y %H:%i:%s') FROM `database` WHERE `olddate` < strftime('%d.%m.%Y %H:%M:%S', 'now', 'localtime')
Вернет отформатированную строку с датой.
`now` и `olddate` должны быть UNIXTIME т.е. integer.

А вообще это все описано тут date-format
Reply
#4

спасибо, но разобрался сам. Ответ нашел на sqlite.org(только там и обитаю). От формата dd.mm.yyyy придется отказаться, буду работать с datetime в моем случае неудобств это не составит.
мое решение:
PHP код:
"SELECT (julianday(дата из базы ('2014-05-24')) - julianday('now')) AS newtime FROM database" 
Quote:

newtime = 30

с точностью до наносекунд результат мне не нужет, этот в полне устраивает.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)