@rusgayfer

Как получить методом groups.getMembers пользователей сообщества у кого сегодня день рождение?

Вот код:

date_default_timezone_set('Etc/GMT-5');
$date = date("d.m"); // Текущая дата (день.месяц)
$datestr = strtotime($date);

//header('Content-type: application/json');
$token = "";
$page = 0;
$limit = 1000;
$users = array();
do {
  $offset = $page * $limit;
  //Получаем список пользователей
  $members = json_decode(file_get_contents("https://api.vk.com/method/groups.getMembers?group_id=тутid&offset={$offset}&count={$limit}&fields=bdate&access_token={$token}&v=5.69"), true);
  
  //Спим
  sleep(1);
  
  for($i = 0; $i < count($members['response']['items']); $i++) {
    $users []= $user; // добавляем юзера к юзерам
	
	$dateusers = strtotime($members['response']["items"][$i]["bdate"]);
	//$datevk =  date("d.m.Y", $dateusers);
	//$datev = strtotime($datevk);
	
if ($dateusers == $datestr) {
//if(preg_match("~\s*(09.12)\s*~u", $datevk)) {
 echo $members['response']["items"][$i]["bdate"].' <a href="//vk.com/id'.$members['response']["items"][$i]["id"].'" target="_blank">'.$members['response']["items"][$i]["first_name"].'</a><br>';
} else {$members['response']['items'][$i]['bdate'] = "";}
	
  }
  //Увеличиваем страницу
  $page++;
} while($members['response']['count'] > $offset + $limit );

foreach ($users as $n => $user) // ходим по юзерам
  if(@$user['deactivated']) // и забаненных
    unset($users[$n]); // удаляем
//var_dump($users);


Вроде все работает, но он получает только у кого указаны даты без года в формате "10.12" (10 Декабря). А как сделать чтобы получало и если указан год и без года?

Отбираю я вот так:

if ($dateusers == $datestr) {
 echo $members['response']["items"][$i]["bdate"].' <a href="//vk.com/id'.$members['response']["items"][$i]["id"].'" target="_blank">'.$members['response']["items"][$i]["first_name"].'</a><br>';
} else {$members['response']['items'][$i]['bdate'] = "";}
  • Вопрос задан
  • 449 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы