Как вычислить год от ввода моего возраста с помощью php

Как я могу вычислить год от ввода моего возраста с помощью php.

пример:

я ввожу свой возраст как 24.

Так, чтобы я получил год как 1985.

как это может быть сделано.

заранее спасибо

5
задан Fero 16 June 2010 в 05:55
поделиться

6 ответов

Если бы вы знали простую математику, вы бы знали, что 2010 - 24 - 1 = 1985 или $ year = date ("Y") - $ theirage - 1 ... Но просто указав возраст, нельзя точно определить, в каком году они родились. Например:

Если дата - 30 декабря 2010 года, и они говорят, что им 24 года, вы все равно говорите, что они родились в 1985 году, когда очень, очень шансы, что они действительно родились. в 1986 году. Вы не можете полагаться на их возраст, чтобы определить год их рождения.

ИЗМЕНИТЬ Если это не совсем понятно:

Сегодня 16 июня 2010 года. Итак, чтобы мне исполнилось 24 года, мне нужно было родиться где-то между 17 июня 1985 года и 16 июня 1986 года. Это примерно половина годов рождения, которые приходятся на 1985 год, и почти половину этого года на 1986 год, что вызывает очень большую неточность.

7
ответ дан 13 December 2019 в 19:21
поделиться

PHP 5.3.0 также представил функцию date_diff как часть класса DateTime.

0
ответ дан 13 December 2019 в 19:21
поделиться

Чтобы получить дату 24 года назад, вы можете использовать strtotime :

$date = strtotime("-24 year");
echo date('%c', $date);
1
ответ дан 13 December 2019 в 19:21
поделиться

С 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);
?>
1
ответ дан 13 December 2019 в 19:21
поделиться

Поскольку вы не можете указать точный год, лучше указать диапазон дат.

Если вам сегодня 24 года (мы обычно округляем вниз, а не округляем в сторону), то вы родились между 17 июня 1985 и 16 июня 1986 года.

Методы сложения и вычитания дат уже были опубликованы на этой странице.

1
ответ дан 13 December 2019 в 19:21
поделиться

ВНИМАНИЕ: Это неточно, но попробовать можно.

$yearBorn = round((((time()-($age*31556926))/31556926)+70));
$yearBorn = ($yearBorn>100)? "20".substr($yearBorn,1,2):"19".$yearBorn;
0
ответ дан 13 December 2019 в 19:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: