在PHP中传递strtotime()函数中的变量

时间:2011-12-14 16:51:27

标签: php variables date strtotime

与此question类似,但我的具体问题没有答案。

当前日期为2011-12-14,以供日后查看此问题的参考。

我试过了:

$maxAge = $row['maxAge']; // for example, $row['maxAge'] == 30
$cutoff = date('Y-m-d', strtotime('-$maxAge days'));

并返回$cutoff: 1969-12-31

的以下值

我试过这个:

$maxAge = $row['maxAge']; // for example, $row['maxAge'] == 30
$cutoff = date('Y-m-d', strtotime('-' . $maxAge . ' days'));

并返回$cutoff: 2011-03-14

的以下值

如何将此变量成功传递到strtotime()函数,以便计算正确减去的天数?

例如,如果$maxAge == 30且当前日期是2011-12-14,那么$cutoff应为2011-11-14

3 个答案:

答案 0 :(得分:16)

使用双引号:

date('Y-m-d', strtotime("-$maxAge days"));

答案 1 :(得分:4)

使用双引号:

$cutoff = date('Y-m-d', strtotime("-$maxAge days"));

但是,如果您正在进行这样的简单计算,您可以通过不使用strtotime来简单地编写代码,如下所示:

$date = getdate();
$cutoff = date('Y-m-d', mktime( 0, 0, 0, $date['mon'], $date['mday'] - $maxAge, $date['year']));
echo $cutoff;

答案 2 :(得分:1)

您可以在PHP中使用双引号或heredoc字符串来扩展变量。单引号和nowdoc字符串不会扩展变量。

http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing