2017-04-11 15 views
0
<!DOCTYPE html> 
<html lang="en-US"> 
<head> 
    <meta charset="UTF-8"> 
    <title> Birthday </title> 

<?php 

    if(isset($_POST["birthday"])) 
     $birthday = $_POST["birthday"]; 
    else 
     $birthday = 1; 

    function calculate_age($birthday){ 

     list($day, $month , $year) = explode("/", $birthday); 
     $day_diff = date("d") - $day; 
     $month_diff = date("m") - $month; 
     $year_diff = date("Y") - $year; 
     if($month_diff < 0){ 
      $year_diff--; 
     } 
     else if(($month_diff == 0) && ($day_diff < 0)){ 
      $year_diff--; 
     } 
     else if (($month_diff == 0) && ($day_diff == 0)){ 
      echo "<script type='text/javascript'>alert('Happy 
      Birthday!!!');</script>"; 
     } 

     return $year_diff; 
     } 

     $finalBirthday=calculate_age($birthday); 

?> 

</head> 
<body> 

    <h1>Birthday Calculator</h1> 

    <form name="Birthday" method="POST" action="birthday.php"> 
     <label>What is your Birthday?</br></label> 
     <input type ="text" name = "birthday" VALUE = "DD/MM/YYYY"></br> 
     <input type ="submit" name = "submit" VALUE = "Submit"></br> 
    </form> 

<?php 

    echo "Our Birthday Calculator says you are " .$finalBirthday; 

?> 

</body> 
</html> 

バースデー電卓

しかし、実際の日付を入れた後、PHPは正常に動作します。

ご協力いただければ幸いです。

+0

= 1 $の誕生日 'ので;'。デバッガやエコーを使って '$ day_diff = date(" d ") - $ day;'の内容を確認してください。 – Jens

+0

PHPの 'if else'文は正しく動作していますか?前にそれを見たことはありませんでした。 'if(isset($ _ POST [" birthday "]))): $ birthday = $ _POST [" birthday "]のように使用されている中括弧を使用していない場合は、 else: $ birthday = 1; endif; '': 'と最後のendifに注意してください。 –

答えて

0

誕生日= 1より、曜日= 1、月= null、年= null。

コードが実行される最初の時間は、$の誕生日は、(1に設定し、その後calculate_ageを通過するので、これはあなたの誕生日があなたの2017歳

+0

私はまだそれを修正することができませんでしたいくつかのもので回り込んだ後。どんな勧告? – Jsalzman

+0

私の展開された答えを参照 – RichardAtHome

1

作る1/0/00であることに多少相当します)関数。

この関数は、スラッシュ/で区切られた日付の文字列表現を想定しています。

期待通りの機能を渡していないので、不器用なように戻ってきます。

拡張ソリューション:あなたは日付を持っていない限り、計算をしないでください。

$finalBirthday = false; 

if(isset($_POST["birthday"])) 
    $birthday = $_POST["birthday"]; 

    list($day, $month , $year) = explode("/", $birthday); 
    $day_diff = date("d") - $day; 
    $month_diff = date("m") - $month; 
    $year_diff = date("Y") - $year; 
    if($month_diff < 0){ 
     $year_diff--; 
    } 
    else if(($month_diff == 0) && ($day_diff < 0)){ 
     $year_diff--; 
    } 
    else if (($month_diff == 0) && ($day_diff == 0)){ 
     echo "<script type='text/javascript'>alert('Happy 
     Birthday!!!');</script>"; 
    } 

    $finalBirthday=$year_diff; 

} 

...

<?php 

    if ($finalBirthday) { 
     echo "Our Birthday Calculator says you are " .$finalBirthday; 
    } 

?> 
+0

いくつかのことを混乱させた後、私はまだそれを修正することができませんでした。どんな勧告? – Jsalzman