首页 >后端开发 >php教程 >两个时间关系对应的数组,怎么让它按时间顺序排列?

两个时间关系对应的数组,怎么让它按时间顺序排列?

WBOY
WBOY原创
2016-06-23 13:31:161240浏览

两个时间关系对应的数组,其中一个是时间数组,怎么让它按时间顺序排列?
$x=Array("2015-07-06 22:49:00",
"2015-07-06 23:18:19",
"2015-07-06 18:30:12",
"2015-07-06 9:03:36",
"2015-07-05 18:31:52"); 
($y略)
array_multisort($x,SORT_DESC,SORT_STRING,$y);
 
 print_r($x);
输出后是这样的:
Array ( [0] => 2015-07-06 9:03:36 [1] => 2015-07-06 23:18:19 [2] => 2015-07-06 22:49:00 [3] => 2015-07-06 18:30:12 [4] => 2015-07-05 18:31:52 ) 
应该是时间越晚越在前吧!可是后面的时间没有按先后顺序排列,是哪里有问题,盼解答


回复讨论(解决方案)

$x = Array(  "2015-07-06 22:49:00",  "2015-07-06 23:18:19",  "2015-07-06 18:30:12",  "2015-07-06 9:03:36",  "2015-07-05 18:31:52"); foreach($x as $t) $r[] = strtotime($t);array_multisort($r, SORT_DESC, $x);print_r($x);
Array(    [0] => 2015-07-06 23:18:19    [1] => 2015-07-06 22:49:00    [2] => 2015-07-06 18:30:12    [3] => 2015-07-06 9:03:36    [4] => 2015-07-05 18:31:52)

1、array_multisort 的最后一个参数是被排序的数组
前面的参数都是排序键和排序方式
你 array_multisort($x,SORT_DESC,SORT_STRING, $y);
是用 $x 对 $y 排序
2、你的 $x 的元素长度不一致,不宜使用 SORT_STRING

我把时间都改成  00:00:00 的格式就可以了,是吗?
我是用  $time=date('G:i:s'); 得到是时间,不能保证这个格式, date('G:i:s');   这个要怎么写才能保持输出的是00:00:00 格式?谢谢版主

我把时间都改成  00:00:00 格式就可以了是吗?
请问 $time=date('G:i:s') 怎么改动才能总是输出想要的格式呢?谢谢版主解答

把时间改成 00::00:00 还不如不要时间只要日期

你只要把 2015-07-06 9:03:36
改成 2015-07-06  09:03:36
就可以用字符串比较
 date('H:i:s')

时间我用的是date('H:i:s') 获取的,
12点以前输出的格式是前面少了个0,
怎么改date('H:i:s') 这个函数才能保证 输出的零不会省略掉,总是为00:00:00格式呢?
用什么输出方法我找不到告诉我一下

你在开玩笑?
H 24 小时格式,有前导零 00 到 23 

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn