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

时间:2015-08-31 12:58:45

标签: javascript date

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

我尝试了this问题及其答案,它为字符串和日期提供了正确的结果,但现在它将数字视为日期。是否有其他解决方案可以避免将号码视为日期?

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

我的日期是yyyy-MM-ddThh:mm:ss + Z。

1 个答案:

答案 0 :(得分:0)

获得解决方案

我不需要检查它是否是日期,而是先检查它是否为数字。如果它不是数字,则只能是日期。

这是我做了什么,它有效。

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))