Я пытался взглянуть на некоторые примеры кода для этого, но я застрял здесь.У меня есть JSON, который читает даты в виде строк.Например:
1/1/1993 - 33970.
У меня есть точки на карте, каждая из которых связана с датами.У меня есть таймер на основе дат.После обновления ползунка времени я бы хотел, чтобы внешний вид точек менялся в зависимости от значения даты ползунка.
// build slider
var inputValue = null;
var year = ["1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009", "2010","2011","2012","2013","2014","2015","2016","2017","2018","2019"];
Создание функции для обновления ползунка.
function update(value) {
document.getElementById("range").innerHTML=year[value];
inputValue = year[value];
d3.selectAll(".points")
.attr("fill", dateMatch);
}
d3.select("#timeslide").on("input", function() {
update(+this.value);
console.log(value)
});
И наконец, построение функции, которая сопоставляет дату в моих данных с датой в ползунке времени!
function dateMatch(data, value) {
var d = new Date(data.properties.Sign_Date);
var y = [d.getFullYear()];
console.log(y)
console.log(d)
if (inputValue == y) {
this.parentElement.appendChild(this);
return "blue";
} else {
return "#999";
};
}
Я думаю, что шаблон здесь должен работать, но есть проблема чтения дат в функции dateMatch.По какой-то причине он просто печатает
Wed Dec 31 1969 16:00:41 GMT-0800 (Pacific Standard Time)
Для каждой записи в моих данных.Что не имеет смысла, так как мои данные даже не восходят к 1969 году. Может кто-нибудь сказать мне, что, по их мнению, может сломаться здесь или, что лучше, более простой способ фильтрации этих временных данных?