【问题标题】:Calculate age from given year in AngularJS在AngularJS中计算给定年份的年龄
【发布时间】:2015-01-08 14:34:59
【问题描述】:

我是 AngularJs 的新手。我必须从给定年份计算年龄。我如何在 PHP 中使用?

我的脚本和视图文件如下,

我的 .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”这样的完整日期,那我该怎么办?

【问题讨论】:

标签: angularjs


【解决方案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;   

}

【讨论】:

    【解决方案2】:

    将此添加到您的 JS 中

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

    然后,您可以在 HTML 中执行此操作:

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

    【讨论】:

      【解决方案3】:

      在 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;
      

      查看此演示:http://codepad.org/ErV8RauU

      【讨论】:

        猜你喜欢
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        • 2012-03-26
        • 1970-01-01
        • 1970-01-01
        • 2014-11-16
        • 2017-05-26
        • 2017-08-08
        相关资源
        最近更新 更多