Как я могу вычислить год от ввода моего возраста с помощью php.
пример:
я ввожу свой возраст как 24.
Так, чтобы я получил год как 1985.
как это может быть сделано.
заранее спасибо
Если бы вы знали простую математику, вы бы знали, что 2010 - 24 - 1 = 1985
или $ year = date ("Y") - $ theirage - 1
... Но просто указав возраст, нельзя точно определить, в каком году они родились. Например:
Если дата - 30 декабря 2010 года, и они говорят, что им 24 года, вы все равно говорите, что они родились в 1985 году, когда очень, очень шансы, что они действительно родились. в 1986 году. Вы не можете полагаться на их возраст, чтобы определить год их рождения.
ИЗМЕНИТЬ Если это не совсем понятно:
Сегодня 16 июня 2010 года. Итак, чтобы мне исполнилось 24 года, мне нужно было родиться где-то между 17 июня 1985 года и 16 июня 1986 года. Это примерно половина годов рождения, которые приходятся на 1985 год, и почти половину этого года на 1986 год, что вызывает очень большую неточность.
PHP 5.3.0 также представил функцию date_diff
как часть класса DateTime.
Чтобы получить дату 24 года назад, вы можете использовать strtotime :
$date = strtotime("-24 year");
echo date('%c', $date);
С DateTime
:
PHP > 5.2
<?php
function getBirthYear($age) {
$now = new DateTime();
$now->modify("-" . $age . " years");
return $now->format("Y");
}
echo getBirthYear(24);
?>
PHP > 5.3
<?php
function getBirthYear($age) {
$now = new DateTime();
$now->sub(new DateInterval("P" . $age . "Y"));
return $now->format("Y");
}
echo getBirthYear(24);
?>
Поскольку вы не можете указать точный год, лучше указать диапазон дат.
Если вам сегодня 24 года (мы обычно округляем вниз, а не округляем в сторону), то вы родились между 17 июня 1985 и 16 июня 1986 года.
Методы сложения и вычитания дат уже были опубликованы на этой странице.
ВНИМАНИЕ: Это неточно, но попробовать можно.
$yearBorn = round((((time()-($age*31556926))/31556926)+70));
$yearBorn = ($yearBorn>100)? "20".substr($yearBorn,1,2):"19".$yearBorn;