有时我们要根据后台返回数据中的时间字段,对各条数据进行排序,但返回的时间是字符串格式,无法排序,转换成 ASCII倒是可以比较大小,但又不准确,比如说2017/01/02是比2017/02/10小的,而2017/01/30却又比2017/02/10大,按这样的规则是无法做时间排序的,下面的方法可以试一下:
var str1 = "2017/01/04"; var str2 = "2017/04/11"; //这是两条时间
str1 = new Date(str1); str2 = new Date(str2); //格式化时间
//得出的结果是 // Wed Jan 04 2017 00:00:00 GMT+0800 (中国标准时间) // Tue Apr 11 2017 00:00:00 GMT+0800 (中国标准时间)
然后用getTime()方法获取时间戳:
var timeStemp1 = str1.getTime(); var timeStemp2 = str2.getTime(); //得到的就是数字类型的时间戳了,而且是时间越近,数值就越大,这样就可以拿来比较了
附上一个冒泡排序:
var arr = [1,2,3,4,5]; for(var i = 0; i < arr.length; i++){ for(var j = 0; j < arr.length - 1; j++){ if(arr[i]>arr[j]){ var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } }