2017-08-01 133 views
-2

我有一個日期格式:字符串轉換星期和日期,以日期在Javascript

Thursday, 10 Aug 2017 

我有這樣的上述日期的數組。我必須在JavaScript中找出數組中最早的日期。 如何有效地解析上述格式的日期以檢查哪個是最早的日期。 我該怎麼做?

我也試過Date.parse方法。它的工作。這是做這件事的好方法嗎?此方法是否可以打破或拋出一些異常?這也會添加任何添加的代碼延遲?由於這種方法檢查完全是客戶端,我們不希望任何類型的延遲。

任何導致的讚賞。

+1

'Java'不是'JavaScript' .... –

+0

你試過了什麼? – Slavik

+0

我嘗試使用var dt = new Date(date1);所以dt來了=「星期四8月10 2017 00:00:00 GMT + 0530(IST)」。 dt.getDate或dt.getYear方法返回空函數而不是值。我能做什麼錯了? – user2696258

回答

0

您可以使用momentjs和解析與

moment.lang("en-au").format('LLLL'); 

日期看一看moment

如果你不想時刻只使用你上面說的

var d = new Date('Thursday, 10 Aug 2017') 
d.getDate() --- 10 
d.getFullYear() --- 2017 

如果什麼你想找到最早的一個,你可以做以下事情(它確實需要重構):

var earliest = null; 
var dates = ['Thursday, 11 Aug 2017', 'Thursday, 10 Aug 2017' , 'Thursday, 15 Aug 2017']; 
dates.forEach(date => {earliest = earliest == null ? new Date(date) : (new Date(date).getTime() < earliest.getTime()) ? new Date(date) : earliest}); 
+0

我不想將任何庫添加到我的代碼中。我正在做的方式是否存在延遲問題? – user2696258

+0

我已經看到所有這些答案,但仍然困惑,因爲他們都使用日期對象。將字符串轉換爲日期對象是否安全?那不能拋出異常或給出不可靠的結果嗎?什麼可以做到這一點最可靠的方式?當你說不可靠的結果時,即使我們確定日期格式不會改變,這種方法是否可以給出不同/錯誤的值 - >這與問題(2017年8月10日,星期四)中提到的相同。非常感謝您在這裏的幫助。 – user2696258

+0

這可以給不同的OS /瀏覽器/設備上的相同日期值的不可靠結果? – user2696258

0

這是一個重複的,但你已經問了很多問題一氣呵成:

我怎樣纔能有效地分析在上面的日期格式,以檢查它的最早日期。我怎樣才能做到這一點?

Why does Date.parse give incorrect results?

重複我還試圖Date.parse方法。它的工作。這是做這件事的好方法嗎?

不,由於重複中列出的原因:它給出不可靠的結果。

該方法是否可以打破或拋出一些異常?

不,但它給出不可靠的結果。

此外,這會添加任何額外的延遲代碼?

不,但它給出不可靠的結果。

+0

我已經看到所有這些答案,但仍然困惑,因爲它們都使用Date對象。將字符串轉換爲日期對象是否安全?那不能拋出異常或給出不可靠的結果嗎?什麼可以做到這一點最可靠的方式?當你說不可靠的結果時,即使我們確定日期格式不會改變,這種方法是否可以給出不同/錯誤的值 - >這與問題(2017年8月10日,星期四)中提到的相同。非常感謝您在這裏的幫助。 – user2696258

+0

這可以給不同的OS /瀏覽器/設備上的相同日期值的不可靠結果? – user2696258

+0

請不要在評論中提問。所有的問題都回答了,'new Date(string)'和'Date.parse(string)'將以完全相同的方式解析字符串,唯一的區別是返回一個Date和另一個數字(這是時間日期值)。實現不同:在一箇中起作用的可能不適用於另一個。看到解析重複。 – RobG

相關問題