2017-08-01 119 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

相关问题