Я пытаюсь создать линейный график для своего проекта. Для выполнения sh мне нужны два date
ввода от пользователя. Оттуда мой бэкэнд принимает входные данные, преобразует его в объект даты javascript.
Моя проблема заключается в том, что когда я пытаюсь преобразовать объекты даты в метку времени пожарного депо, я получаю эту ошибку.
TypeError: t.getTime не является функцией в Function.ho.fromDate (timestamp.ts: 27) в Object.next (generateReportDateRange. php: 158) в subscribe.ts: 104 в subscribe.ts: 233
строка (generateReportDateRange.php:158)
указывает на этот код:
var toTimeStampOne = firebase.firestore.Timestamp.fromDate(dateIdOne);
Этот код выполняет преобразование объекта даты в объект отметки времени пожарного депо. Оттуда я должен использовать toTimeStampOne
в качестве запроса для получения определенных данных от documents
. Вот код завершения бэкенда, который может быть связан с проблемой:
var dateIdOne = sessionStorage.getItem("dateOne");
var dateIdTwo = sessionStorage.getItem("dateTwo");
var dateSetArray = [];
var dataCal = [];
console.log(dateIdOne); //OUTPUT: Fri Mar 06 2020 08:00:00 GMT+0800 (Philippine Standard Time)
console.log(dateIdTwo); //OUTPUT: Tue Mar 10 2020 08:00:00 GMT+0800 (Philippine Standard Time)
firebase.auth().onAuthStateChanged(user => {
if (user) {
this.userId = user.uid;
} //stores the user id in variable
var toTimeStampOne = firebase.firestore.Timestamp.fromDate(dateIdOne);
var toTimeStampTwo = firebase.firestore.Timestamp.fromDate(dateIdTwo);
var dateSetArray = [];
var dataCal = [];
let userRef1 = firebase.firestore().collection("users").doc(userId).collection("glucose")
.where("dateAdded", ">=", toTimeStampOne)
.where("dateAdded", "<=", toTimeStampTwo)
.limit(7);
return userRef1.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id, " => ", doc.data());
this.dateSet = doc.data().bgReading;
dateSetArray.push(dateSet);
this.calDateAdded = doc.data().dateAdded.toDate();
const options = {
month: 'short',
day: 'numeric',
year: 'numeric'
};
const date = new Date(calDateAdded);
const americanDate = new Intl.DateTimeFormat('en-us', options).format(date);
dataCal.push(americanDate);
});
});
});
РЕДАКТИРОВАТЬ
вот процесс преобразования
//get date input from the forms and converts it to a js date object already
var data = {
dateOne: new Date($('#dateRangeOne').val()),
dateTwo: new Date($('#dateRangeTwo').val()),
};
//stores the date object to a session storage
sessionStorage.setItem("dateOne", data.dateOne);
sessionStorage.setItem("dateTwo", data.dateTwo);