2016-08-29 48 views
0

我正在使用WordPress,我希望年齡在我的所有帖子中動態更新。PHP渲染時代

我用我的functions.php下面的代碼:

function internoetics_determine_age($atts) { 
extract(shortcode_atts(array(
'dob' => '' /* See post for date formats */ 
), $atts)); 
$age = floor((time() - strtotime($dob))/31556926); 
return $age; 
} 
add_shortcode('age', 'internoetics_determine_age'); 

我然後使用簡碼[年齡出生日期=「1945年」]但顯示爲-16的結果,應該是71 。

任何想法?

回答

1

strtotime函數與日期一起使用,所以strtotime(1945)是不正確的。 strtotime('1945-01-01')是如此正確的:

$age = floor((time() - strtotime(((int)$dob) . '-01-01'))/31556926); 

但是,你應該只使用:

$age = date('Y') - ((int)$dob); 

*((INT)$ DOB),以防萬一$ DOB有不同的格式

+0

如果它是什麼'[年齡dob =「1945-01-04」]'? –

+0

'$ dob =(int)$ dob;' – nospor