PHP:如何制作“生日”

时间:2010-08-10 12:38:40

标签: php

所以在我的社区中,我真的想在个人资料中过生日,但我不知道该怎么做。

我想要做的是在他们的个人资料中,例如“16岁”如果他选择了他的设置:1994-01-01,所以就像它计算出他在他的设置中挑选的生日多大了

我该怎么做?我开始时有3个选择,几天,几个月和几天。年。

                    <select name="days" id="days">
    <option selected="selected" value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>

    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>

    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>

    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>

    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>

</select>
<select name="months" id="months" style="width:100px;">
    <option selected="selected" value="1">januar</option>
    <option value="2">februar</option>
    <option value="3">marts</option>
    <option value="4">april</option>
    <option value="5">maj</option>

    <option value="6">juni</option>
    <option value="7">juli</option>
    <option value="8">august</option>
    <option value="9">september</option>
    <option value="10">oktober</option>
    <option value="11">november</option>

    <option value="12">december</option>

</select>
<select name="years" id="years">
    <option selected="selected" value="1950">1950</option>
    <option value="1951">1951</option>
    <option value="1952">1952</option>
    <option value="1953">1953</option>

    <option value="1954">1954</option>
    <option value="1955">1955</option>
    <option value="1956">1956</option>
    <option value="1957">1957</option>
    <option value="1958">1958</option>
    <option value="1959">1959</option>

    <option value="1960">1960</option>
    <option value="1961">1961</option>
    <option value="1962">1962</option>
    <option value="1963">1963</option>
    <option value="1964">1964</option>
    <option value="1965">1965</option>

    <option value="1966">1966</option>
    <option value="1967">1967</option>
    <option value="1968">1968</option>
    <option value="1969">1969</option>
    <option value="1970">1970</option>
    <option value="1971">1971</option>

    <option value="1972">1972</option>
    <option value="1973">1973</option>
    <option value="1974">1974</option>
    <option value="1975">1975</option>
    <option value="1976">1976</option>
    <option value="1977">1977</option>

    <option value="1978">1978</option>
    <option value="1979">1979</option>
    <option value="1980">1980</option>
    <option value="1981">1981</option>
    <option value="1982">1982</option>
    <option value="1983">1983</option>

    <option value="1984">1984</option>
    <option value="1985">1985</option>
    <option value="1986">1986</option>
    <option value="1987">1987</option>
    <option value="1988">1988</option>
    <option value="1989">1989</option>

    <option value="1990">1990</option>
    <option value="1991">1991</option>
    <option value="1992">1992</option>
    <option value="1993">1993</option>
    <option value="1994">1994</option>
    <option value="1995">1995</option>

</select>

我应该知道什么?我应该如何将它们存储在“生日”字段中:天/月/年?有没有特定的方法来做到这一点,所以你可以计算年龄?你怎么算年龄..

谢谢!

2 个答案:

答案 0 :(得分:6)

如果你想计算出生时的年龄,你可以简单地做(PHP 5.3 +):

$birth = new DateTime("1986-12-02");
$now = new DateTime();
$age = $now->diff($birth)->format("%y");
echo $age; //23

答案 1 :(得分:2)

这是一个适用于5.3以下的php版本的解决方案(大多数主机仍然使用以下版本):

<?php
list($year, $month, $day) = explode('-', $date);

$year = date('Y') - $year;
$month = date('m') - $month;
$day = date('d') - $day;

if ($month < 0 || ($month == 0 && $day < 0)) // Have we had a birth this year?
    $year--;

echo 'Age is ' . $year;

这要求格式为yyyy-mm-dd。但是,如果有人愿意,可以使用strtotime轻松更改。