2010-06-16 5 views
5

Comment puis-je calculer l'année d'entrer dans mon âge en utilisant php.Comment calculer l'année d'entrer dans mon âge en utilisant php

exemple:

je suis entrée de mon âge 24.

Alors que je dois obtenir l'année 1985.

comment cela peut se faire.

merci à l'avance

+0

que nous avons besoin de l'année 1986 animuson. Dans ce cas, nous n'avons pas besoin de prendre soin de Mois et Année. Y a-t-il un moyen – Fero

Répondre

7

Si vous saviez mathématiques simples, vous sauriez que 2010 - 24 - 1 = 1985 ou $year = date("Y") - $theirage - 1 ... Mais donner un âge ne déduisent pas exactement quelle année ils sont nés. Par exemple:

Si la date est le 30 décembre 2010 et ils disent qu'ils ont 24 ans, vous dites toujours qu'ils sont nés en 1985 quand les chances sont très, très qu'ils sont nés en 1986. Vous ne pouvez pas compter sur leur âge pour vous donner leur année de naissance.

EDIT Si cela n'a pas été très clair:

La date d'aujourd'hui est le 16 Juin 2010. donc être de 24 ans, je l'aurais besoin d'être né quelque part entre le 17 Juin 1985 et Le 16 juin 1986. C'est près de la moitié des années de naissance qui seraient en 1985 et près de la moitié de 1986, ce qui entraînerait une très grande inexactitude.

+2

Qu'en est-il de '$ time = strtotime (" - 24 years ");'? –

+1

@RussellDias: Cela calcule encore il y a 24 ans à partir de la date d'aujourd'hui. Cela provoque exactement le même problème. – animuson

+0

Oh OK J'ai le problème maintenant. Désolé, j'ai juste dû relire ce que vous avez écrit =) –

1

Pour obtenir la date il y a 24 ans, vous pouvez utiliser strtotime:

$date = strtotime("-24 year"); 
echo date('%c', $date); 
1

Avec 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

Puisque vous ne pouvez pas donner une année exacte, il est préférable de spécifier une plage de dates.

Si vous êtes, vous êtes né entre le 17 juin 1985 et le 16 juin 1986.

Méthodes d'addition et de soustraction dates ont déjà 24 ans aujourd'hui (nous avons l'habitude autour vers le bas, pas ronde hors) été posté sur cette page.

0

AVERTISSEMENT: Ceci est inexact mais c'est un essai.

$yearBorn = round((((time()-($age*31556926))/31556926)+70)); 
$yearBorn = ($yearBorn>100)? "20".substr($yearBorn,1,2):"19".$yearBorn; 
1

J'utilise un simple script php que je l'ai fait par moi-même: My_Age_Php

+0

Bienvenue sur SO! Pour référence future, si vous avez des scripts simples ou des extraits comme celui-ci, collez-les ici. Cela protège contre la pourriture des liens, et tout le monde n'est pas enclin à télécharger des choses à partir d'un site qu'ils ne connaissent pas. – NullUserException

Questions connexes