|
|
|
|
|
для: P@Sol
(09.06.2005 в 09:37)
| | вот, я решил использовать такую строку:
$age = floor((time() - mktime($hour, $minute, $second, $month, $days, $year))/(86400*365));
p.s. floor - округление в меньшую сторону | |
|
|
|
|
|
|
|
для: cheops
(08.06.2005 в 22:08)
| | но Вы же сами должны понимать, что это много не точно:)...мне в этом году может быть x и (х+1) год...а выводится в течении года будет всегда один возраст:(
а если то что было написано для php поделить еще на 365? | |
|
|
|
|
|
|
|
для: P@Sol
(08.06.2005 в 17:08)
| | Это проще сделать при помощи средства PHP пусть год храниться в ячейки с именем yer, тогда разницу между текущим годом и полем yer вы сможете вычислить при помощи следующего запроса
SELECT YEAR(NOW()) - year FROM tbl
|
Здесь используется встроенная функция NOW() возвращающая текущую дату в формате 'YYYY-MM-DD hh:mm:ss' и функция YEAR() извлекающая из даты год. | |
|
|
|
|
|
|
|
для: cheops
(01.12.2004 в 22:27)
| | а как получить из этого в годах?
у меня в бд 3 ячейки день\месяц\год...и надо узнать кол-во лет пользователя занесенного в бд | |
|
|
|
|
|
|
|
для: кен
(01.12.2004 в 18:18)
| | Практически аналогичный скрипт на PHP выглядит следующим образом:
<?php
$text = "18.05.2004";
$hour = 0;
$minute = 0;
$second = 0;
$month = substr($text,3,2);
$days = substr($text,0,2);
$year = substr($text,6,4);;
echo (time() - mktime($hour, $minute, $second, $month, $days, $year))/86400;
?>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(01.12.2004 в 21:54)
| | Кроме того, при регистрации - форум будет сообщать обо всех новых сообщениях с момента последнего посещения и никто не сможет отвечать из под вашего ника. | |
|
|
|
|
|
|
|
для: кен
(01.12.2004 в 18:18)
| | Если Вы зарегистрируетесь на форуме, то у Вас будет возможность править свои сообщения (пока на них не ответили). | |
|
|
|
|
автор: кен (01.12.2004 в 18:18) |
|
|
для: cheops
(01.12.2004 в 13:43)
| | 1) с первым вариантом всё ясно, спасибо.
2) в БД есть вспомогательная таблица, хранящая некоторые общие константные и переменные значения и имеющая 2 поля: name и value. Value может быть числом, строкой или датой. Поэтому используется тип TINYTEXT, позволяющий хранить эти разнородные данные в одном поле в строковом формате. Перед использованием эти данные легко приводятся к нужному типу. Именно поэтому есть вопрос:
- как именно средствами PHP узнать количество дней между двумя датами, заданными в строковом представлении (например, как результат функции date() или дата в таком же строковом виде, взятая из БД)?
P.S. ...И как можно исправить ошибку в сообщении, отправленном на форум? | |
|
|
|
|
|
|
|
для: кен
(01.12.2004 в 11:41)
| | 1) Для этого можно вопспользоваться комбинацией встроенных функций TO_DAYS и NOW():
SELECT TO_DAYS(NOW()) - TO_DAYS('2004-05-18 09:07:12');
|
или
SELECT TO_DAYS(NOW()) - TO_DAYS(puttime) FROM tbl WHERE id=45;
|
Фунция TO_DAYS - преобразует дату в дни, а NOW() возращает текущее время
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=319
2) Встречный вопрос: а имеет ли смысл использовать TINYTEXT под время, дело в том, что в этом случае затрачивается 11 байт под поле, в то время как под любой временной тип только 4, а гибкость операций со временем гораздо выше так как все они хранятся в виде секунд с 1970 года и отличаются только форматом вывода. | |
|
|
|
|
автор: кен (01.12.2004 в 11:41) |
|
| Подскажите, как вычислить к-во дней между двумя датами (конкретно, между текущей датой и сохранённой в базе данных)?
Нужны решения для двух случаев:
1) если дата была сохранена в БД как дата (DATE или TIMESTAMP)
2) если дата была сохранена в БД как текст (TINYTEXT), сформированный функцией date("d.m.Y") | |
|
|
|
|