在JSON变量循环中获取最近5年的日期
Get last 5 years of dates in a JSON variable - loop
我想知道如何从以下格式的JSON变量中检索最近5年和最近10年的日期。
var dates =
"[{'"Date'":'"1996-05-31T00:00:00'"},{"Date'":'"1996-06-30T00:00:00'"},{'"Date'":'"1996-07-31T00:00:00'"},{'"Date'":'"1996-08-31T00:00:00'"},{"Date'":'"1996-09-30T00:00:00'"},{'"Date'":'"1996-10-31T00:00:00'"} ...
{'"Date'":'"2013-08-31T00:00:00'"},{"Date'":'"2013-09-30T00:00:00'"},{'"Date'":'"2013-10-31T00:00:00'"}]"
注意。。。因为空间的原因,我省略了中间的所有变量。
这就是我目前所拥有的:
var data = JSON.parse(dates);
var d1 = [] d2 = [], d3 [];
var today = new Date();today.setHours(0,0,0,0);
var last5Years = new Date(today.setFullYear(today.getFullYear() -5)).getTime();
var last10Years = new Date(today.setFullYear(today.getFullYear() - 10)).getTime();
for (i = 0; i < data.length; i++) {
var s = data[i].Date.split('T')[0];
var t = [new Date(s).getTime()];
d1.push(t); // all dates
if (t[0] > last5Years) {
d2.push(t); //push last 5years dates to d2
}
else if (t[0] > last10Years) {
d3.push(t); //push last 10 years dates to d3
}
}
d2似乎有效,但d3由于某种原因不正确。
提前感谢
1)获取today's date
如下
var today = new Date(); //returns dateTime
today.setHours(0,0,0,0); //reset time to zero to get only the date part
2) 要回到5年前,获取并设置它。
var last5Years = new Date(today.setFullYear(today.getFullYear() + 5)).getTime();
3) 现在要将恢复到10年,再次将今天的年份减少5(而不是10)并设置它。
var last10Years = new Date(today.setFullYear(today.getFullYear() + 5)).getTime();
4) 由于您已经在json中解析了日期,只需添加以下条件
var s = data[i].Date.split('T')[0];
var t = [new Date(s).getTime()];
d1.push(t); //push all dates to d1
if (t < last5Years) {
d2.push(t); //push last 5years dates to d2
}
else if (t < last10Years) {
d3.push(t); //push last 10 years dates to d3
}
最后你的代码将是
var data = JSON.parse(dates);
var d1 = [], d2 = [], d3 = [];
for (var i = 0; i<data.length;i++) {
var today = new Date();
today.setHours(0,0,0,0);
//Get time of last 5 years
var last5Years = new Date(today.setFullYear(today.getFullYear() + 5)).getTime();
//Get time of last 10 years
var last10Years = new Date(today.setFullYear(today.getFullYear() + 5)).getTime();
var s = data[i].Date.split('T')[0];
var t = [new Date(s).getTime()];
d1.push(t); //push all dates to d1
if (t < last5Years) {
d2.push(t); //push last 5years dates to d2
}
else if (t < last10Years) {
d3.push(t); //push last 10 years dates to d3
}
}
希望你能理解。
相关文章:
- jQuery最近父级的数据属性选择器
- 在IE9中的输入字段中输入焦点最近按钮
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- 在我的网站上显示最近提交的文章/图片
- Solr查询以按日期月份获取数据&年
- 如何提取“;href"最近列表项中的属性值
- javascript中两年之间的小时差(带闰年)
- 在angularjs/google地图中显示分支最近的路线
- 如何在javascript中显示两年之间的所有闰年
- 如何获得Bootstrap Datepicker的年和月,因为它在变化
- 2012年12月迁移在App Dashboard中不可用
- 对象数组返回自最近日期以来的最高总体值
- 我希望这个日期选择器可以从1990年到2000年之间的年份中选择日期
- 如何验证日期、月份和日期的3个独立输入字段;年使用jquery或javascript
- 我在下拉列表中尝试了下一个和前五年的html代码.接下来的5年我都过得很好.我怎样才能拿到之前的5年
- Facebook共享在2016年不起作用
- 在JSON变量循环中获取最近5年的日期
- 为什么最近几年JS文件中更常用单引号
- 存储“最近10年”的数据结构数据集
- 通过使用时刻javascript我只需要添加小时(不增加或添加分钟)/轮到最近的小时或月或年