在JavaScript中检查字符串是否为日期

Check if string is date or not in JavaScript

从服务器,我得到对象中的一些值的有效日期,但我不知道我将获得哪个字段的数字以及我将获得日期的哪个字段。

我尝试了这个问题及其答案,它给出了字符串和日期的正确结果,但现在它将数字视为日期。 任何其他解决方案,以避免将数字视为日期?

这个问题是以不同的格式解析日期。 我的问题是关于区分日期和数字字符串。 并且仅对日期字符串执行操作。

我在yyyy-MM-ddThh得到约会:mm:ss + Z.


得到了解决方案

我不需要检查它是否是日期,而是先检查它是否为数字。 如果它不是数字那么只有它可以是日期。

这是我做了什么,它的工作原理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var obj={
  key1:"2015-10-10T11:15:30+0530",
  key2:2015,
  key3:"Normal String"
}

function parseDate(dateStr){
  if(isNaN(dateStr)){ //Checked for numeric
    var dt=new Date(dateStr);
    if(isNaN(dt.getTime())){ //Checked for date
      return dateStr; //Return string if not date.
    }else{
      return dt; //Return date **Can do further operations here.
    }
  } else{
    return dateStr; //Return string as it is number
  }
}

console.log("key1",parseDate(obj.key1))
console.log("key2",parseDate(obj.key2))
console.log("key3",parseDate(obj.key3))