PHP 不支持的操作数类型

标签 php date time operand

我明白了:

$newcw = array_rand( range( 1, 52 ), 15 ) ;
shuffle($newcw);
$year = date("Y");
$time = mktime(0,0,0,1,1,$year) + ($newcw * 7 * 24 * 60 * 60);
$time = $time - ((date('N', $time) - 1) * 24 * 60 * 60);

$startWeek = date('D d-M-Y', $time);
$endWeek = date('D d-M-Y', $time + (6 * 24 * 60 * 60));

所以基本上我得到了一个代表日历周的随机整数。

我计算开始日(星期一)和结束日(星期日) 那个日历周。

但我得到以下错误:

Fatal error: Unsupported operand types in 88

第 88 行是这一行:

$time = mktime(0,0,0,1,1,$year) + ($newcw * 7 * 24 * 60 * 60);

编辑: 我想要一个不会 self 重复的随机整数,这就是我尝试这种方法的原因。

最佳答案

如果您只想要一个值,请使用常规的 rand 函数:

//$newcw = array_rand( range( 1, 52 ), 15 ) ;
//shuffle($newcw);

$newcw = rand(1,52);

http://php.net/manual/en/function.rand.php

但是,如果您确实需要在脚本后面的某处使用其他 14 个值,您可以只选择 suffled 数组中的第一个元素进行此计算:

$newcw = array_rand( range( 1, 52 ), 15 ) ;
shuffle($newcw);
$year = date("Y");
$time = mktime(0,0,0,1,1,$year) + ($newcw[0] * 7 * 24 * 60 * 60); //<-- note [0]

然后根据需要使用其他值,每次递增 key ,例如:

some_func($newcw[1]); 

$val = $newcs[2] + 100; 
//....
another_func($newcw[14];

关于PHP 不支持的操作数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33039952/

相关文章:

php - 如何在php中打印剩余的 session 时间?

php - INSERT 到 mysql 数据库准备语句

php, "thread safe"SQL操作

javascript - moment.js 如何知道它的对象何时被序列化?

JAVA:如果函数持续超过1秒如何中断函数

php - 在 PHP 中,如何从文本 block 中提取多个电子邮件地址并将它们放入数组中?

java - 在 Android 中使用 Hashmap、GraphView 出现无法解析的日期错误

swift - DateFormatter ISO 8601 时区

c - 在内核模块中以秒为单位获取当前时间

php - 自然地对时间字符串数组进行排序