Показать полную графическую версию : [решено] обрезать выход из базы
у меня стоит вывод сколько пользователей за сутки пришло такое
$date=date("d.m.Y");
$sql12=mysql_query("select*from users where date_reg='$date'");
$row00=mysql_num_rows($sql12);
а хочу чтоб ещо и время указывалось в профиле пользователя
$date=date("d.m.Y H:i");
самый простой способ это завести ещо один столбец в базе и туда прописывать дату регистрации с временем
но и так много столбцов там
мож есть ещо проще решение
или можно както обрезать часы и минуты
самое простое - это поле timestamp и в запросе форматировать DATE_FORMAT (http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format)() как надо (MySQL), либо поле int и писать туда unix_timestamp (time()), форматировать date().
решил остановится на unix_timestamp (time()) но как вывести это в echo чтоб в понятном виде ане смесь цифр
как unix_timestamp (time()), форматировать в нормальное время ?
как unix_timestamp (time()), форматировать в нормальное время ? »
date (http://docs.php.net/manual/ru/function.date.php) - вторым параметром timestamp
dmitryst
25-10-2010, 21:15
binders, вот так, например
echo $today = date("F j, Y, g:i a") . '<br>';
Дальше, я думаю, сообразите :)
не совсем echo $today = date("F j, Y, g:i a") . '<br>'; »
вот так правельней
$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) имхо побыстрее будет.
хотя с обычной датой (с полем timestamp) имхо побыстрее будет. »
для кого быстрей ? быстрей скрип онже сайт будет работать или быстрей точней проще код писать ?
Быстрее будет запрос выполняться (DATE_FORMAT имхо побыстрее FROM_UNIXTIME из-за того, что формат даты компактнее обычного числа unix_timestamp).
самый простой способ это завести ещо один столбец в базе и туда прописывать дату регистрации с временем »
это самый быстрый способ, если поле будет DATE и с индексом - тогда запросы с проверкой по дате будут самые быстрые (не нужно форматировать, и используется индекс).
это как-бы вопрос выбора, как удобнее и т.д.
dmitryst
26-10-2010, 15:13
вставляем time() из php. »
я думаю, так будет удобнее (да и не настолько уж тормознутее). Плюс - можно учесть часовые пояса, перевод времени и прочую хрень (обработав в php, конечно)
идея в том чтоб удалять не активировавшихся пользователей через Х дней
было так
$del12=mysql_query( "select * FROM ".DB_USER." WHERE rang = '0' AND date_reg < NOW() - INTERVAL '".$settings['day']."' DAY");
сделал два варианта не один не работает
$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` в каком формате?
поле `date_reg` в каком формате? »
из базы в UNIXTIME + INT
а зачем в дату форматировать? Кол-во секунд = дни * 86400.
$del12 = mysql_query
("
SELECT
*
FROM
".DB_USER."
WHERE
`rang` = '0' AND
`date_reg` < ". ( time() - $settings['day'] * 86400 ) ."
");
// если в $settings['day'] кол-во дней
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.