-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
обрезать выход из базы
у меня стоит вывод сколько пользователей за сутки пришло такое
PHP код:
$date=date("d.m.Y");
$sql12=mysql_query("select*from users where date_reg='$date'");
$row00=mysql_num_rows($sql12);
а хочу чтоб ещо и время указывалось в профиле пользователя
самый простой способ это завести ещо один столбец в базе и туда прописывать дату регистрации с временем
но и так много столбцов там
мож есть ещо проще решение
или можно както обрезать часы и минуты
|
самое простое - это поле timestamp и в запросе форматировать DATE_FORMAT() как надо (MySQL), либо поле int и писать туда unix_timestamp (time()), форматировать date().
|
решил остановится на unix_timestamp (time()) но как вывести это в echo чтоб в понятном виде ане смесь цифр
как unix_timestamp (time()), форматировать в нормальное время ?
|
Цитата:
Цитата binders
как unix_timestamp (time()), форматировать в нормальное время ? »
|
date - вторым параметром timestamp
|
binders, вот так, например
echo $today = date("F j, Y, g:i a") . '<br>';
Дальше, я думаю, сообразите :)
|
не совсем
Цитата:
Цитата dmitryst
echo $today = date("F j, Y, g:i a") . '<br>'; »
|
вот так правельней
PHP код:
$timestamp = time();
$date = date('d.m.Y H:i', $timestamp);
echo"$date<br>";
echo"$timestamp";
как выводить то разобрался а вот как это прикрутить к первому посту не понял ещо
|
поле date_reg тогда int (беззнаковое), при вставке в запросе пишем `date_reg` = UNIX_TIMESTAMP()
или вставляем time() из php.
Код:
SELECT
*
FROM
`users`
WHERE
FROM_UNIXTIME(`date_reg`, '%d.%m.%Y') = FROM_UNIXTIME(UNIX_TIMESTAMP(), '%d.%m.%Y')
хотя с обычной датой (с полем timestamp) имхо побыстрее будет.
|
Цитата:
Цитата Sham
хотя с обычной датой (с полем timestamp) имхо побыстрее будет. »
|
для кого быстрей ? быстрей скрип онже сайт будет работать или быстрей точней проще код писать ?
|
Быстрее будет запрос выполняться (DATE_FORMAT имхо побыстрее FROM_UNIXTIME из-за того, что формат даты компактнее обычного числа unix_timestamp).
Цитата:
Цитата binders
самый простой способ это завести ещо один столбец в базе и туда прописывать дату регистрации с временем »
|
это самый быстрый способ, если поле будет DATE и с индексом - тогда запросы с проверкой по дате будут самые быстрые (не нужно форматировать, и используется индекс).
это как-бы вопрос выбора, как удобнее и т.д.
|
Цитата:
Цитата Sham
вставляем time() из php. »
|
я думаю, так будет удобнее (да и не настолько уж тормознутее). Плюс - можно учесть часовые пояса, перевод времени и прочую хрень (обработав в php, конечно)
|
идея в том чтоб удалять не активировавшихся пользователей через Х дней
было так
PHP код:
$del12=mysql_query( "select * FROM ".DB_USER." WHERE rang = '0' AND date_reg < NOW() - INTERVAL '".$settings['day']."' DAY");
сделал два варианта не один не работает
PHP код:
$date=date("d.m.Y H:i", mktime(date("H"), date("i"), date("s"), date("m") , date("d") + 3, date("Y")));
$del12=mysql_query( "select * FROM ".DB_USER." WHERE rang = '0' AND FROM_UNIXTIME(`date_reg`, '%d.%m.%Y %H:%i') < '$date'");
$del12=mysql_query( "select * FROM ".DB_USER." WHERE rang = '0' AND FROM_UNIXTIME(`date_reg`, '%d.%m.%Y') < FROM_UNIXTIME(UNIX_TIMESTAMP(), '%d.%m.%Y') - INTERVAL '".$settings['day']."' DAY");
while($rowdel=mysql_fetch_array($del12)){
}
где моя ошибка ?
|
поле `date_reg` в каком формате?
|
Цитата:
Цитата Sham
поле `date_reg` в каком формате? »
|
из базы в UNIXTIME + INT
|
а зачем в дату форматировать? Кол-во секунд = дни * 86400.
PHP код:
$del12 = mysql_query (" SELECT * FROM ".DB_USER." WHERE `rang` = '0' AND `date_reg` < ". ( time() - $settings['day'] * 86400 ) ." "); // если в $settings['day'] кол-во дней
|
Время: 22:19.
© OSzone.net 2001-