2015-01-08 58 views
0

我是AngularJs的新用戶。我必須從年度計算年齡。我如何在PHP中?計算AngularJS中給定年份的年齡

我的腳本和查看文件之後,

我.JS:

function mycontroller($scope){ 
    $scope.sales = [ 
     { 
      name: 'steptoinstall', 
      year: 1986, 
     } 
    ]; } 

我view.php:

<li ng-repeat="sale in sales" > 
    {{sale.name}} {{ **AGE** }} 
</li> 

而且,
如果我有像'10-01-1989'這樣的全日期,那我該怎麼辦?

+1

你想在服務器端計算(在PHP中)或開啓客戶端(在JavaScript中)?在前一種情況下,它與角度有什麼關係? –

+0

[如何減去兩個angularjs日期變量]的可能重複(http://stackoverflow.com/questions/15298663/how-to-subtract-two-angularjs-date-variables) –

回答

1

如果只是一年的手段,

view.PHP

<li ng-repeat="sale in sales" > 
    {{sale.name}} {{ yearToAge(sale.year) }} 
</li> 

.js文件:

$scope.yearToAge= function(y) { 
    return new Date().getFullYear() - y; 
} 

如果日期格式給出,

view.PHP

<li ng-repeat="sale in sales" > 
    {{sale.name}} {{ dateToAge(sale.dob) }} // dob should be in dd/mm/yyyy format 
</li> 

.js文件:

$scope.dateToAge = function(date1){ 

var d = new Date(); 
var curr_date = d.getDate(); 
var curr_month = d.getMonth() + 1; 
var curr_year = d.getFullYear(); 
var today = curr_date + "-" + curr_month + "-" + curr_year; 

var x = date1.split("-");  
var y = today.split("-"); 
var bdays = x[1]; 
var bmonths = x[0]; 
var byear = x[2]; 
var sdays = y[1]; 
var smonths = y[0]; 
var syear = y[2]; 

if(sdays < bdays) 
{ 
    sdays = parseInt(sdays) + 30; 
    smonths = parseInt(smonths) - 1; 
    var fdays = sdays - bdays; 
} 
else{ 
    var fdays = sdays - bdays; 
} 

if(smonths < bmonths) 
{ 
    smonths = parseInt(smonths) + 12; 
    syear = syear - 1; 
    var fmonths = smonths - bmonths; 
} 
else 
{ 
    var fmonths = smonths - bmonths; 
} 

var fyear = syear - byear; 


return fyear; 

} 
0

添加到您的JS

$scope.ageFromYear = function(year) { 
    return new Date().getFullYear() - year; 
} 

然後,你可以在你的HTML做到這一點:

<li ng-repeat="sale in sales" > 
    {{sale.name}} {{ ageFromYear(sale.year) }} 
</li> 
0

在PHP中,這個想法是建立在日期轉換成UNIX時間戳,然後轉換當前日期也是如此。然後減去它們,最後將該數字除以年份中的秒數並獲得其年份的數量。

這是一個處理如下:

$d = '10-01-1989'; 
$dT = strtotime($d); 
$cur = strtotime(date("m-d-Y")); 
$diff = $cur - $dT; 
$years = floor($diff/(60*60*24*365)); 
echo $years; 

結帳這個DEMO:http://codepad.org/ErV8RauU