2010-12-06 41 views
1

我怎樣才能將這些字符串轉換到日期格式和排序相應....請javascript日期排序由轉換字符串中的日期格式

2010-11-08 18:58:50.0_getCreated_10180 
2010-11-09 17:49:42.0_getCreated_10180 
2010-11-09 17:49:42.0_getCreated_10180 
2010-11-24 19:44:51.0_getCreated_10180 
2010-11-09 13:54:46.0_getCreated_10180 
2010-11-23 20:06:29.0_getCreated_10180 
2010-11-23 20:06:04.0_getCreated_10180 
2010-11-15 17:51:37.0_getCreated_10180 

由於提前, 約瑟夫

+0

這些字符串是如何生成的? – 2013-03-01 20:14:54

回答

7

如果你有一個單一的字符串,然後這樣做。例如在http://www.jsfiddle.net/gaby/rfGv8/


我們需要爲每個日期做什麼(

// first create an array by splitting the string at the newlines 
var list = dateString.split('\n'); 
list = list 
    .map(// for each element in the list (each date) 
     function(val,idx){ 
      // use the first part(before the dot(.)), replace the - with spaces and convert to date 
      return new Date(val.split('.')[0].replace(/-/g,' ')); 
    }) 
    .sort(); // at the end sort the results. 

2010-11-08 18點58分50秒 .0_getCreated_10180 刪除後的部分。
val.split('.')[0]完成

然後用一個空格替換 - 使其看起來像2010 11 08 18:58:50這是Date構造函數的可接受日期格式。
val.split('.')[0].replace(/-/g,' ')

完成然後,它作爲一個參數傳遞給日期的構造應用上述所有元素和得到一個新的數組使用.sort()方法之後創建日期對象實現與new Date(val.split('.')[0].replace(/-/g,' '))


按升序對數組進行排序。

+0

幫了很多...謝謝 – 2016-10-07 08:04:27

0

請按照下面的代碼。 getDateSort函數返回排序日期

<script language="javascript" type="text/javascript"> 

      function getDateSort() { 


       dateArray = new Array('2010-11-08 18:58:50', '2010-11-09 17:49:42', 
    '2010-11-09 17:49:42', '2010-11-15 17:51:37', '2010-11-23 20:06:04', '2010-11-09 13:54:46', '2010-11-23 20:06:29', '2010-11-24 19:44:51'); 
       dateArray.sort(dmyOrdA); 
       alert('Ascending : ' + dateArray + ''); 
       return false; 
      } 


      var dateRE = /^(\d{2})[\/\- ](\d{2})[\/\- ](\d{4})/; 
      function dmyOrdA(a, b) { 
       a = a.replace(dateRE, "$3$2$1"); 
       b = b.replace(dateRE, "$3$2$1"); 
       if (a > b) return 1; 
       if (a < b) return -1; 
       return 0; 
      } 
      function dmyOrdD(a, b) { 
       a = a.replace(dateRE, "$3$2$1"); 
       b = b.replace(dateRE, "$3$2$1"); 
       if (a > b) return -1; 
       if (a < b) return 1; 
       return 0; 
      } 
      function mdyOrdA(a, b) { 
       a = a.replace(dateRE, "$3$1$2"); 
       b = b.replace(dateRE, "$3$1$2"); 
       if (a > b) return 1; 
       if (a < b) return -1; 
       return 0; 
      } 
      function mdyOrdD(a, b) { 
       a = a.replace(dateRE, "$3$1$2"); 
       b = b.replace(dateRE, "$3$1$2"); 
       if (a > b) return -1; 
       if (a < b) return 1; 
       return 0; 
      } 

     </script> 
相關問題