【问题标题】:php if time with random numberphp 如果时间带有随机数
【发布时间】:2014-01-08 01:02:35
【问题描述】:

我试图在 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);
}

谢谢:)

【问题讨论】:

  • 您在单引号中有UniqueRandomNumbersWithinRange()。 PHP 将其视为字符串,而不是函数。
  • 不起作用,导致错误。
  • 你能具体说明什么错误吗?另外,你的逻辑是否必须如此封装在&lt;?php ?&gt;标签中?
  • 它仍然无法正常工作,它没有生成随机数。 -- 我就是这样做的:)

标签: php wordpress date random


【解决方案1】:

我在那里看到的两个可能导致该问题的问题,有两种情况您正在将内容转换为字符串但不想:

对于

这没有运行函数,因为它在单引号 ' ' 之间,所以你想删除它们

<?php $number   =   UniqueRandomNumbersWithinRange(0,25,5); ?>

为了

您正在混合不同类型的引号,因此 $number 并没有真正被调用。您可能希望将其调整为:

<?php echo date('jS F', strtotime("now -".$number." days") ); ?>

【讨论】:

  • 这也不起作用,它会在我的循环中导致意外的“endwhile”。 :(
  • 我现在在代码中看不到任何其他问题(如果我错了,其他人显然可以纠正我)。您能否提供更多代码和遇到的错误?
【解决方案2】:

正如 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 2018-01-20
    相关资源
    最近更新 更多