Как рассчитать год от ввода моего возраста с помощью php - PullRequest
5 голосов
/ 16 июня 2010

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

пример:

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

Так что мне нужно получитькак 1985 год.

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

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

Ответы [ 7 ]

7 голосов
/ 16 июня 2010

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

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

EDIT Если бы это было не очень ясно:

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

1 голос
/ 12 ноября 2011

Я использую простой скрипт php, который я сделал сам: My_Age_Php

1 голос
/ 16 июня 2010

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

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

Методы сложения и вычитания дат уже размещены на этой странице.

1 голос
/ 16 июня 2010

С 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 голос
/ 16 июня 2010

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

$date = strtotime("-24 year");
echo date('%c', $date);
0 голосов
/ 16 июня 2010

ВНИМАНИЕ: Это неточно, но попытка.

$yearBorn = round((((time()-($age*31556926))/31556926)+70));
$yearBorn = ($yearBorn>100)? "20".substr($yearBorn,1,2):"19".$yearBorn;
0 голосов
/ 16 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...