1

誰かの生年月日をmm/dd/yyyyフォーマットで計算できるJavaScriptまたはPHPスクリプトを探しています。この非常に役立つリンク「JavaScriptで年齢を計算する」を見つけましたが、ユーザー入力で機能するように設計されているようです。ただし、DOBを単純なテキストとしてHTMLに直接配置するページを作成しています。それでも年齢を計算することは可能ですか?基本的に、このテキスト行を最終結果にします。

29 (10/17/1983)

値は29自動的に計算され、年齢(年)として表示されます。

このようなことが可能であるならば、私はあなたの助けに非常に感謝するでしょう。私はPHPやjQueryにかなり精通していますが、確かに上級者ではありません。

4

4 に答える 4

7

PHP:

$today = new DateTime();
$birthdate = new DateTime("1973-04-18 09:48:00");
$interval = $today->diff($birthdate);
echo $interval->format('%y years');

実際の動作をご覧ください。明らかに、ニーズに合わせてフォーマットすることができます。

于 2013-03-18T12:41:23.963 に答える
1

Javascript:

これはおそらくあなたが求めている以上のことをしますが、年齢を年、月、日で示します。

このような: 8 years, 7 months, 21 days old

これは、生後数日しか経っていない新生児用​​のサイトがある場合にうまく機能します.

これは、ほぼ 9 年前に娘のウェブサイトで使用したものです。

    function GetMyAge()
{
<!--

birthTime = new Date("July 25, 2004 00:00:00 GMT-0600")
todaysTime = new Date();

<!-- Parse out specific date values
todaysYear = todaysTime.getFullYear()
todaysMonth = todaysTime.getMonth()
todaysDate = todaysTime.getDate()
todaysHour = todaysTime.getHours()
todaysMinute = todaysTime.getMinutes()
todaysSecond = todaysTime.getSeconds()
birthYear = birthTime.getFullYear()
birthMonth = birthTime.getMonth()
birthDate = birthTime.getDate()
birthHour = birthTime.getHours()
birthMinute = birthTime.getMinutes()
birthSecond = birthTime.getSeconds()

<!-- Adjusts for Leap Year Info
if ((todaysYear / 4) == (Math.round(todaysYear / 4))) {
   countLeap = 29}
else {
     countLeap = 28}

<!-- Calculate the days in the month
if (todaysMonth == 2) {
   countMonth = countLeap}
else {
     if (todaysMonth == 4) {
        countMonth = 30}
     else {
        if (todaysMonth == 6) {
           countMonth = 30}
        else {
           if (todaysMonth == 9) {
              countMonth = 30}
           else {
              if (todaysMonth == 11) {
                 countMonth = 30}
              else {
                 countMonth = 31}}}}}

<!-- Doing the subtactions
if (todaysMinute > birthMinute) {
   diffMinute = todaysMinute - birthMinute
   calcHour = 0}
else {
   diffMinute = todaysMinute + 60 - birthMinute
   calcHour = -1}
if (todaysHour > birthHour) {
   diffHour = todaysHour - birthHour + calcHour
   calcDate = 0}
else {
   diffHour = todaysHour + 24 - birthHour  + calcHour
   calcDate = -1}
if (todaysDate > birthDate) {
   diffDate = todaysDate - birthDate + calcDate
   calcMonth = 0}
else {
   diffDate = todaysDate + countMonth - birthDate  + calcDate
   calcMonth = -1}
if (todaysMonth > birthMonth) {
   diffMonth = todaysMonth - birthMonth + calcMonth
   calcYear = 0}
else {
   diffMonth = todaysMonth + 12 - birthMonth + calcMonth
   calcYear = -1}
diffYear = todaysYear - birthYear + calcYear

<!-- Making sure it all adds up correctly
if (diffMinute == 60) {
   diffMinute = 0
   diffHour = diffHour + 1}
if (diffHour == 24) {
   diffHour = 0
   diffDate = diffDate + 1}
if (diffDate == countMonth) {
   diffDate = 0
   diffMonth = diffMonth + 1}
if (diffMonth == 12) {
   diffMonth = 0
   diffYear = diffYear + 1}

if (diffYear != 1)
    YearPlural = "s"
else
    YearPlural=""

if (diffMonth != 1)    
    MonthPlural = "s"
else
    MonthPlural=""

if (diffDate != 1)     
    DatePlural = "s"
else
    DatePlural=""


if (diffYear == 0 && diffMonth == 0)
    return (diffDate + ' day' + DatePlural + ' old.  ');
else if (diffYear == 0)
    return (diffMonth + ' month' + MonthPlural + ', ' + diffDate + ' day' + DatePlural + ' old.  ');
else
    return (diffYear + ' year' + YearPlural + ', ' + diffMonth + ' month' + MonthPlural + ', ' + diffDate + ' day' + DatePlural + ' old.  ');
}
// -->
于 2013-03-18T12:46:10.340 に答える
1

JavaScript では、次のように計算できます。

function getAge(dateString) {
    var today = new Date();
    var birthDate = new Date(dateString);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}
于 2013-03-18T12:46:12.923 に答える
1

年齢を計算する最も簡単な方法は次のとおりです。

CURRENT YEAR - BIRTH YEAR = AGE  
IF(CURRENT MONTH DAY < BIRTH MONTH DAY) AGE--;

IE 生存年ですが、まだ誕生日を迎えていない場合は -1

MONTH DAY は 3 月 1 日の 0301 です

于 2013-03-18T12:53:27.127 に答える