从服务器,我获得了对象中某些值的有效日期,但我不知道我将获得哪个字段的编号以及我将获得日期的字段。
我尝试了this问题及其答案,它为字符串和日期提供了正确的结果,但现在它将数字视为日期。是否有其他解决方案可以避免将号码视为日期?
This问题是以不同的格式解析日期。我的问题是关于区分日期和数字字符串。并且仅对日期字符串执行操作。
我的日期是yyyy-MM-ddThh:mm:ss + Z。
答案 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))