Как получить кол-во зарегистрированных сегодня пользователей?
есть таблица Users, у каждого из них есть поле created_at(формат unix time).
Если я правильно понимаю то нужно вычесть текущее время от которого он создан. И полученный результат должен быть не более суток.
Можно ли одним запросом к бд сделать пишу на Yii.
Или же придется перебирать всех пользователей массивом и собирать по критериям
nokimaro, Ну я думаю логично будет с полуночи или за 24 часа... фиг его знает. потом решим, главное как это сделать одним запросом к базе... и вывести просто ->count();
Arman, Ой я пока писал забыл зачем писал :D Я думал нужно получить всех пользователей, а там только количество. Ну тогда all на count поменять, хотя я не думаю что там супер мега популярный сайт где тысячами регистрируются в день. А вот поводу автобуса, это если бы я достал всех пользователей, загрузил и проверял бы и сортировал по дате средствами php ;)
twobomb, ну крч. суть в том что он мне выводит все равно всех пользователей. я создал пользователя который по дате регистрации стоит 13 марта. и он его тоже в счетчик кидает. что-то не то...А что пока не могу понять
Дмитрий, работает как выше комментарий скинули, я говорю буду разбираться как это работает чтобы понять.
И в дальнейшем знать, а не тупо копировать и вставлять.
Владислав, частично, если Вы говорите про эту.
Для начала блога Вам хватит с головой, даже больше. Кстати, в первых статьях по yii2 там обсуждается похожая проблема.
Владислав, Работает так, у вас хранится дата в формате timestamp, то что выдает по сути php функцией time(Возвращает количество секунд, прошедших с начала эпохи Unix (1 января 1970 00:00:00 GMT) до текущего времени).
Я беру текущее время time() вычитаю количество секунд прошедших с начала сегодняшнего дня. Чтобы получить начало дня.
date("H")*3600 + date("i")*60 + date("s")
или
час умножить на количество секунд в часе + минуты умножить на количество секунд в минуте + секунды.
В итоге получаем timestamp, количество секунд прошедшее с 70го года, на начало текущего дня на 0 часов 0 минут 0 секунд, и делаем выборку всего что больше или равно этим секундам.