2016-09-16 64 views
-3

所以考慮以下幾點:Date.parse爲字符串日期提供了NAN ...等等什麼?

Date.parse('August 28th 2016'); 
NaN 

等待什麼呢?什麼是適當的方式來獲得日期時間這個,所以我可以做這樣的事情:

data.sort((a, b) => 
     Date.parse(Object.keys(a)[0]) - 
     Date.parse(Object.keys(b)[0])) 

Object.keys(a)[0] // => August 28th 2016 

所以...什麼是正確的方式呢?

+0

你不能解析與該格式的日期,你不重新分配... –

+3

正確的方法是獲得整合ers代表日期的部分,並將它們傳遞給'新日期' – adeneo

+0

我認爲** th **是問題所在。嘗試'Date.parse('August 28 2016');',它的工作原理 – Bhavik

回答

2

我建議使用momentjs使日期工作更容易。你的任務可以完成:

var dates = [moment('August 28th 2016' ,'MMMM Do YYYY'),moment('August 22nd 2016' ,'MMMM Do YYYY'),moment('August 12th 2016' ,'MMMM Do YYYY')]; 
 

 
dates.sort(function(a,b) { 
 
    return a.isAfter(b); 
 
}); 
 

 
console.log(dates);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.0/moment-with-locales.min.js"></script>

也許更好 - 如果你的對象的鍵是字符串現在:

var dates = ['August 28th 2016','August 22nd 2016','August 12th 2016']; 
 

 
dates.sort(function(a,b) { 
 
    return moment(a,'MMMM Do YYYY').isAfter(moment(b,'MMMM Do YYYY')); 
 
}); 
 

 
console.log(dates);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.0/moment-with-locales.min.js"></script>

相關問題