2012-10-26 61 views
0

我有如下代碼:獲得年月日,年齡日期和日期之間現在用PHP

<tr> 
    <td>Date :</td> 
    <td><input type="text" name="txtdembauche" value="<?php echo $value['dateEmbouche'] ?>"class="validate[required] text-input datepicker TextInput" id="txtdembauche"/></td> 
    <td></td> 
</tr> 
<?php       

    @$date1 = $_POST['txtdembauche']; 
    $date2 = date("Y-m-d"); 
    $diff = abs(strtotime($date2) - strtotime($date1)); 
    $years = floor($diff/(365*60*60*24)); 
    $months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24)); 
    $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));  

?> 
<tr> 
    <td>Ancienneté : <b id="anciente" style="color:#FF0000;"><?php printf("%d years, %d months, %d days\n <br />", $years, $months, $days); ?></b></td> 
    <td></td> 
    <td></td> 
</tr> 
<input type="text" name="dateResult" id="dateResult" value="<?php // I do not know how to calculate this ?>"> 

問題:

<tr> 
    <td>Ancienneté : <b id="anciente" style="color:#FF0000;"><?php printf("%d years, %d months, %d days\n <br />", $years, $months, $days); ?></b></td> 
    <td></td> 
    <td></td> 
</tr> 

它不工作得很好,它會顯示錯誤的日期。

<input type="text" name="dateResult" id="dateResult" value="<?php // I do not know how to calculate this ?>"> 

我想要得到的日期和時間之間的人年齡現已是前妻:12years,但我不知道如何做到這一點。

+0

不清楚你想知道什麼,請進一步描述你真正需要做什麼。你想得到這兩天或什麼的區別? – vinu

+0

2我想要得到的一點: 1.我想減去日期」class =「驗證[必需]文本輸入日期選擇器TextInput「id =」txtdembauche「/>'與現在的日期,以得到結果例如:'2年3個月1天' 2.我想要在年齡<日期<輸入類型=「text」name =「txtdembauche」value =「<?php echo $ value ['dateEmbouche']?>」class =「validate [required] text-input datepicker TextInput」id =「txtdembauche」/>'now with date now得到結果例如:'22年'。 –

+0

你需要什麼? – vinu

回答

0

至於評論,這是關於你的編碼技術或概念。我創建了一個測試代碼只是遵循它,並確定你在哪裏錯了

<?php       
if(isset($_POST['submit'])){ 
    @$date1 = $_POST['txtdembauche'];// if format mm/dd/yyyy 
    $date2 = date("m/d/Y");//change m,d,y according to input data format 
    $diff = abs(strtotime($date2) - strtotime($date1)); 
    $years = floor($diff/(365*60*60*24)); 
    $months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24)); 
    $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));  
} 
?> 
<form action="" method="post"> 
<table> 
<tr> 
    <td>Date :</td> 
    <td><input type="text" name="txtdembauche" value="<?php echo $value['dateEmbouche'] ?>"class="validate[required] text-input datepicker TextInput" id="txtdembauche"/></td> 
    <td><input type="submit" name="submit" value="Get Age"></td> 
</tr> 
<tr> 
    <td>Ancienneté : </td> 
    <td><b id="anciente" style="color:#FF0000;"><?php printf("%d years, %d months, %d days\n <br />", $years, $months, $days); ?></b></td> 
    <td></td> 
</tr> 
<tr> 
    <td>Age</td> 
    <td><input type="text" name="dateResult" id="dateResult" value="<?php echo $years; ?>"></td> 
    <td></td> 
</tr> 
</table> 
</form> 
+0

是的,問題是它顯示錯誤的年份和錯誤的結果。 –

+0

它對我來說非常完美。給我你檢查的日期和你得到的答案 – vinu

+0

我有日期'11/02/2010',我得到了結果42.我也不知道這個。 –

1
<?php 
$birthday = "1987-01-01"; 
$timestamp = strtotime($birthday); 
$age = (date("md") >= date("md", $timestamp)) ? (date("Y") - date("Y", $timestamp)) : (date("Y") - date("Y", $timestamp) - 1); 
echo $age."\n"; 

希望這能幫助你!