我正在开发一个需要从JS输入日期并检查JSON表中日期是什么的应用程序。
如何获取已创建的JS日期字符串(yyyy,mm,dd),并找到相应键的值?
我已经尝试过将字符串字符串化,并通过JS函数推送它。
var d = new Date();
var date = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
var dateStr = year + "/" + month + "/" + date;
console.log(dateStr);
dateJSON = JSON.stringify(dateStr)
console.log(dateJSON)
alert(testVar.dateJSON)
var testVar = { //In a JS file
"2019-11-06": "D",
"2019-11-08": "A_con" //continues for a very long time.....
}
对于“ 2019-11-08”,我希望变量“ letterDay”等于“ A_con”。
到目前为止,当我提取“ testVar.dateJSON”时,我的代码返回“ undefined”
我认为这要简单得多,您的数据密钥为yyyy-mm-dd
格式,而您的dateStr
为yyyy/mm/dd
格式,这是一个简单的代码段
var testVar = { //In a JS file
"2019-11-09": "D",
"2019-11-08": "A_con" //continues for a very long time.....
}
var d = new Date();
var date = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
// Your mistake was here, the separators were '/'
var dateStr = year + "-" + month + "-" + date;
console.log(dateStr);
// Get the value dynamically
// when you have a dynamic key use testVar[dateStr]
// testVar.dateStr will literally look for a key called "dateStr" it will not evaluate the value of dateStr
console.log(testVar[dateStr]);
您用错误的方式格式化了dateStr
变量(用“ /”代替“-”)。
var testVar = { //In a JS file
"2019-11-06": "D",
"2019-11-08": "A_con" //continues for a very long time.....
}
var d = new Date('November 06, 2019 23:15:30');
var day = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
var dateStr = year + "-" + month + "-" + (day > 9 ? day : '0' + day);
console.log(testVar[dateStr]); // D
您是否尝试过使用JSON.parse()
?
所以:JSON.parse(testVar);
,然后从那里修改您的代码和变量。
var testVar = { //In a JS file
"2019-11-06": "D",
"2019-11-08": "A_con" //continues for a very long time.....
}
var d = new Date();
var date = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
var dateStr = year + "-" + month + "-0" + date;
alert(testVar[dateStr])
使用方括号访问属性,对象中的日期属性的格式也为“ 2019-11-08”,但搜索字符串的格式为“ 2019/11/08”