将ACF日期文件转换为年龄

时间:2018-02-20 作者:Md. Abu Hasan

我试图显示与高级自定义字段不同的年龄。但是,它通过拆分天、年、月等来显示总年龄。实际上,我想单独计算。示例:我想显示为-

28年| 343个月12444总天数| 250632小时| 15037920分钟| 15037920秒

我尝试使用此代码,但不起作用。

<?php
 $date = get_field(\'dob\'); 
 $birthday = new DateTime($date);
 $interval = $birthday->diff(new DateTime);
    echo $interval->days.\'Total days\'."\\n";
    echo $interval->y.\' years\'."\\n";
    echo $interval->m.\' months\'."\\n";
    echo $interval->d.\' days\'."\\n";
    echo $interval->h.\' hours\'."\\n";
    echo $interval->i.\' minutes\'."\\n";
    echo $interval->s.\' seconds\'."\\n";  
?>
它正在显示-

10444总天数28年7个月2天0小时4分32秒

1 个回复
最合适的回答,由SO网友:Beee 整理而成

$birthday_ts = strtotime( get_field(\'dob\') );
$now         = current_time( \'timestamp\' );
$years       = intval( ( $now - $birthday_ts ) / YEAR_IN_SECONDS );
$months      = intval( ( $now - $birthday_ts ) / MONTH_IN_SECONDS );
$weeks       = intval( ( $now - $birthday_ts ) / WEEK_IN_SECONDS );
$days        = intval( ( $now - $birthday_ts ) / DAY_IN_SECONDS );
$hours       = intval( ( $now - $birthday_ts ) / HOUR_IN_SECONDS );
$minutes     = intval( ( $now - $birthday_ts ) / MINUTE_IN_SECONDS );
$seconds     = intval( ( $now - $birthday_ts ) );

echo $years . \' years | \' . $months . \' months | \' . $weeks . \' weeks | \' . $days . \' days | \' . $hours . \' hours | \' . $minutes . \' minutes | \' . $seconds . \' seconds\' ;
我只是用我自己的出生日期(1978年8月16日)试了一下,结果是:

39 years | 481 months | 2061 weeks | 14433 days | 346394 hours | 20783654 minutes | 1247019262 seconds

结束

相关推荐

在样式表中使用PHP(可能是“.htaccess”问题?)

很抱歉,我问了一个(从我收集的信息中)相对频繁的问题,但我认为我已经把问题复杂化了,因为我离开了一个项目,然后在我的技能变得生疏之后再回来。因此,在我不久前为一位朋友创建的一个非常基本的主题中,我在样式表中使用PHP创建了一些变量,以便可以随机化某些元素的颜色。我实现这一点的方法是命名样式表style.php (与CSS相反),包括<?php header(\"Content-type: text/css; charset: UTF-8\"); ?> 在文件的顶部。这在当时效果很好,但自从我完

将ACF日期文件转换为年龄 - 小码农CODE - 行之有效找到问题解决它

将ACF日期文件转换为年龄

时间:2018-02-20 作者:Md. Abu Hasan

我试图显示与高级自定义字段不同的年龄。但是,它通过拆分天、年、月等来显示总年龄。实际上,我想单独计算。示例:我想显示为-

28年| 343个月12444总天数| 250632小时| 15037920分钟| 15037920秒

我尝试使用此代码,但不起作用。

<?php
 $date = get_field(\'dob\'); 
 $birthday = new DateTime($date);
 $interval = $birthday->diff(new DateTime);
    echo $interval->days.\'Total days\'."\\n";
    echo $interval->y.\' years\'."\\n";
    echo $interval->m.\' months\'."\\n";
    echo $interval->d.\' days\'."\\n";
    echo $interval->h.\' hours\'."\\n";
    echo $interval->i.\' minutes\'."\\n";
    echo $interval->s.\' seconds\'."\\n";  
?>
它正在显示-

10444总天数28年7个月2天0小时4分32秒

1 个回复
最合适的回答,由SO网友:Beee 整理而成

$birthday_ts = strtotime( get_field(\'dob\') );
$now         = current_time( \'timestamp\' );
$years       = intval( ( $now - $birthday_ts ) / YEAR_IN_SECONDS );
$months      = intval( ( $now - $birthday_ts ) / MONTH_IN_SECONDS );
$weeks       = intval( ( $now - $birthday_ts ) / WEEK_IN_SECONDS );
$days        = intval( ( $now - $birthday_ts ) / DAY_IN_SECONDS );
$hours       = intval( ( $now - $birthday_ts ) / HOUR_IN_SECONDS );
$minutes     = intval( ( $now - $birthday_ts ) / MINUTE_IN_SECONDS );
$seconds     = intval( ( $now - $birthday_ts ) );

echo $years . \' years | \' . $months . \' months | \' . $weeks . \' weeks | \' . $days . \' days | \' . $hours . \' hours | \' . $minutes . \' minutes | \' . $seconds . \' seconds\' ;
我只是用我自己的出生日期(1978年8月16日)试了一下,结果是:

39 years | 481 months | 2061 weeks | 14433 days | 346394 hours | 20783654 minutes | 1247019262 seconds

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请