我正在尝试创建一个函数,该函数输出日期按时间顺序排列的X个日期(因此date1< date2< date3等)。我需要一个示例输入数据。
到目前为止,我已经提出了这个函数,但是在uasort之后数组键是不是很重要???
function getRandomDateTime($startDate, $endDate, $num) {
$dateTmp = '';
$dateArr = [];
$rndDat = '';
for ($i = 0; $i < $num; $i++) {
$randomTime = mt_rand(strtotime($startDate), strtotime($endDate));
$rndDate = date('Y-m-d', $randomTime);
$dateArr[] .= $rndDate;
}
return $dateArr;
}
$test = getRandomDateTime('2015-06-03', '2017-05-12', 10);
print_r($test);
function sortByTime($a, $b){
$a = strtotime($a);
$b = strtotime($b);
return $a - $b;
}
uasort($test, 'sortByTime');
print_r($test);
答案 0 :(得分:1)
除非我遗漏了某些内容,否则您不能简单地在函数中使用sort
来返回已排序的数组吗?
function getRandomDateTime( $start, $end, $num ) {
$arr=array();
for( $i = 0; $i < $num; $i++ ) {
$arr[]=date('Y-m-d', mt_rand( strtotime( $start ), strtotime( $end ) ) );
}
sort( $arr, SORT_REGULAR );
return $arr;
}
$test = getRandomDateTime('2013-06-03', '2018-02-01', 10 );
printf('<pre>%s</pre>', print_r( $test,true ) );
将产生类似于:
的输出Array
(
[0] => 2013-07-30
[1] => 2014-06-25
[2] => 2014-09-15
[3] => 2014-11-19
[4] => 2015-03-24
[5] => 2015-05-30
[6] => 2015-08-15
[7] => 2016-02-12
[8] => 2017-02-10
[9] => 2018-01-19
)