我试图在php循环中回显一个随机日期,代码适用于“如果帖子是3个月大”,那么我想得到今天的日期,减去“随机”数字,例如将回显一个日期基于此数字。
一切正常,但不是$ number。有人可以告诉我哪里出错了吗?
<?php
$post_age = date('U') - get_the_time('U');
if($post_age > 7884000 ) { ?>
<?php $number = 'UniqueRandomNumbersWithinRange(0,25,5)'; ?>
<?php echo date('jS F', strtotime("now -'.$number.' days") ); ?>
<?php } else {?>
<?php } ?>
功能:
function UniqueRandomNumbersWithinRange($min, $max, $quantity) {
$numbers = range($min, $max);
shuffle($numbers);
return array_slice($numbers, 0, $quantity);
}
谢谢:)
答案 0 :(得分:0)
我在那里看到的两个可能导致问题的问题,有两种情况你将事物转化为字符串但又不想:
有
这不是在运行该函数,因为它在单引号''之间,因此您要删除它们
<?php $number = UniqueRandomNumbersWithinRange(0,25,5); ?>
并为
您正在混合使用不同类型的引号,因此实际上并未调用$ number。您可能希望将其调整为:
<?php echo date('jS F', strtotime("now -".$number." days") ); ?>
答案 1 :(得分:0)
正如James的回答所说,你在代码中多次混淆字符串和函数。
此外,您的UniqueRandomNumbersWithinRange()
函数返回一个数组。这不能写入字符串。
<?php
$post_age = date('U') - get_the_time('U');
if($post_age > 7884000) {
$number = fetchRandoms(0, 25, 5);
echo date('jS F', strtotime("now -" . $number . " days") );
} else {
// la dee da
}
function fetchRandoms($min, $max, $amt) {
$result = '';
for ($i = 0; $i < $amt; $i++) {
$result .= mt_rand($min, $max);
}
return $result;
}