将结果存储在var而不是printf中

时间:2017-01-18 11:05:42

标签: php datetime

我有这个PHP脚本从日期开始获取年龄:

$bday = new DateTime('1987-04-21');
$today = new DateTime(date('Y-m-d'));
$diff = $today->diff($bday);
printf('%d Years, %d Months', $diff->y, $diff->m);

现在我不想直接 printf ,我想将结果放在 var 中以便在别处使用它。怎么样?

5 个答案:

答案 0 :(得分:6)

只需将printf替换为sprintf,就像这样

$var = sprintf('%d Years, %d Months', $diff->y, $diff->m);
  

文档for sprintf

答案 1 :(得分:2)

如果您想将月份和年份存储在不同的变量中,请执行此操作。

$bday = new DateTime('1987-04-21');
$today = new DateTime(date('Y-m-d'));
$diff = $today->diff($bday);

$years = $diff->y;
$months = $diff->m;

//echo $months;

答案 2 :(得分:1)

您的数据位于$diff,您应该可以在任何地方使用该变量。无需将其存储在另一个变量中。

您可以使用:

echo "$differ->y Years, $differ->m Months";

答案 3 :(得分:1)

另一种解决方案

$bday = new DateTime('1987-04-21');
$today = new DateTime(date('Y-m-d'));
$diff = $today->diff($bday);

$years = $diff->format('%y');
$months = $diff->format('%m');  

答案 4 :(得分:0)

这是一个样本:

<?php
    $dob=date_create("1987-04-21");
    $currentDate=date_create(date('Y-m-d'));
    $diff=date_diff($dob,$currentDate);
    echo $diff->format("%y years");
?>