Перейти к публикации

нужен скрипт "возраст пользователя"


Рекомендованные сообщения

нужен скрипт который "превращает" -дату/месяц/год- рождения в "возраст пользователя"...или чтото в этом роде.

пример: "28-08-1988" "превращаем" в "20" (лет)

:ph34r:

Изменено пользователем Flake
Ссылка на сообщение
Поделиться на других сайтах

могу просто пхп код функции дать

function textstamp($number, $lang){


	if (strlen($number) < 2)

		$number = "0".(string)$number;

	else

		$number = (string)$number;


	if ($number{0} != 1 && $number{1} == 1) return $lang[0];

	elseif ($number{0} != 1 && $number{1} > 1 && $number{1} < 5) return $lang[1];


	return $lang[2];

}



function birthday($date, $stype){

global $_TIME;


if ($stype > 0)

	return langdate("j F", $date);

elseif ($stype == -1)

	return langdate("j F Y", $date);


$now_day = date("j", $_TIME);

$now_month = date("n", $_TIME);

$now_year = date("Y", $_TIME);

$time_day = date("j", $date);

$time_month = date("n", $date);

$time_year = date("Y", $date);

$subtract = 0;


if($now_month < $time_month) $subtract = 1; 

elseif($now_month == $time_month && $now_day < $time_day) $subtract = 1;


$age = intval($now_year-$time_year-$subtract);


if ($age < 10 || $age > 90) return "--";


return $age . textstamp($age, array(" год"," года"," лет"));

}

Ссылка на сообщение
Поделиться на других сайтах

Ну в плане он будет показывать 20 до новго года, а 1 января будет показывать 21.

Ссылка на сообщение
Поделиться на других сайтах

Ах да, ты прав. Хотел на скорую руку написать. Ну тогда вот такой вариант:

<?php

$string = "28-08-1988";


$cur_day = date("j");

$cur_month = date("n");

$cur_year = date("Y");


$mas = explode("-",$string);

$age = $cur_year - $mas[2];


if( ((int)$mas[1] > $cur_month) || ((int)$mas[1] == $cur_month && (int)$mas[0] > $cur_day) ) $age--;


echo $age;

?>

Ссылка на сообщение
Поделиться на других сайтах

извините за глупый вопрос, я в php вместо

$string = "28-08-1988";
должен написать
$string = "[xfvalue_day]-[xfvalue_mounth]-[xfvalue_year]";

?

Ссылка на сообщение
Поделиться на других сайтах

Нет. Вот такие штуки типа "[xfvalue_day]" пишутся в шаблонах, которые имеют расширение .tpl, а что ты должен и где писать это зависит от того где и как у тебя вообще хранится дата рождения (в базе(и в какой таблице), в файле и т.д.). Если сам в этом плохо разбираешься я посоветовал бы все же заплатить кому нибудь и тебе сделают все быстро.

Ссылка на сообщение
Поделиться на других сайтах

А я понял у Вас дата рождения через дополнительные поля сделана. Ну тогда делаем вот что:

=================================================

Открыть файл:  /engine/modules/show.short.php

=================================================

Найти:

	} else $tpl->set('{approve}',"");


Вставить после:

	$mas = Array($xfieldsdata['day'],$xfieldsdata['mounth'],$xfieldsdata['year']); 


	$cur_day = date("j");

	$cur_month = date("n");

	$cur_year = date("Y");


	$age = $cur_year - $mas[2];


	if( ((int)$mas[1] > $cur_month) || ((int)$mas[1] == $cur_month && (int)$mas[0] > $cur_day) ) $age--;


	$tpl->set('{age}',$age);

=================================================

Теперь в шаблоне короткой новости можете использовать тег {age} для вывода возраста.

Ссылка на сообщение
Поделиться на других сайтах

Лучще

	$cur_day = date("j");

	$cur_month = date("n");

	$cur_year = date("Y");


	$age = $cur_year - $xfieldsdata['year'];


	if( ($xfieldsdata['day'] > $cur_month) || ($xfieldsdata['mounth'] == $cur_month && $xfieldsdata['day'] > $cur_day) ) $age--;


if ($age < 10 || $age > 90) $age = "--";


	$tpl->set('{age}',$age);

Изменено пользователем Al-x
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...