将字符串转换为日期,然后转换为时间戳以添加到 firestore
Convert String to Date then to timestamp to add to firestore
好的,所以我有两个反应本机组件 DateTimePicker,我使用它们使用以下更改功能从用户那里收集日期和时间
const onChangeDate = (event, selectedDate) => {
const currentDate = selectedDate || date;
setDateShow(Platform.OS === 'ios');
setDate(currentDate);
let tempDate = new Date(currentDate);
let date = tempDate.getFullYear() + '-' + tempDate.getMonth() + '-' + tempDate.getDate();
console.log(date); //2022-4-18
setFinalDate(date);
}
const onChangeTime = (event, selectedTime) => {
const currentTime = selectedTime || time;
setTimeShow(Platform.OS === 'ios');
setTime(currentTime);
let tempDate = new Date(currentTime);
let time = tempDate.getHours() + ':' + tempDate.getMinutes() + ':' + tempDate.getSeconds() + tempDate.getMilliseconds();
console.log(time); //0:10:00
setFinalTime(time);
}
为 finalTime 和 finalDate 设置状态后
const eventTimestamp = (`${finalDate} ${finalTime}`);
console.log(eventTimestamp) // output is 2022-4-18 0:10:00
我似乎无法将其转换为 date() 对象,然后使用 toMillis() 方法将其转换为时间戳,因为我想将其作为时间戳添加到 firestore 中。
使用 new Date() 将其转换为日期给我 Date { NaN } 并使用 firestore 方法 firebase.firestore.Timestamp.fromDate(works) 给我 Object {
“纳秒”:NaN,
“秒”:NaN,
}
我哪里出错了?
您应该解析日期字符串,然后将其转换为 date()
对象。请参阅下面的示例代码:
// Initiate a new Date object.
const eventTimestamp = new Date(
// Parse the string into a date
Date.parse(
`${finalDate} ${finalTime}`
)
)
await setDoc(doc(db, "<collection>", "<document-id>"), {
timestamp: eventTimestamp
});
有关更多信息,您可以查看此 documentation。
好的,所以我有两个反应本机组件 DateTimePicker,我使用它们使用以下更改功能从用户那里收集日期和时间
const onChangeDate = (event, selectedDate) => {
const currentDate = selectedDate || date;
setDateShow(Platform.OS === 'ios');
setDate(currentDate);
let tempDate = new Date(currentDate);
let date = tempDate.getFullYear() + '-' + tempDate.getMonth() + '-' + tempDate.getDate();
console.log(date); //2022-4-18
setFinalDate(date);
}
const onChangeTime = (event, selectedTime) => {
const currentTime = selectedTime || time;
setTimeShow(Platform.OS === 'ios');
setTime(currentTime);
let tempDate = new Date(currentTime);
let time = tempDate.getHours() + ':' + tempDate.getMinutes() + ':' + tempDate.getSeconds() + tempDate.getMilliseconds();
console.log(time); //0:10:00
setFinalTime(time);
}
为 finalTime 和 finalDate 设置状态后
const eventTimestamp = (`${finalDate} ${finalTime}`);
console.log(eventTimestamp) // output is 2022-4-18 0:10:00
我似乎无法将其转换为 date() 对象,然后使用 toMillis() 方法将其转换为时间戳,因为我想将其作为时间戳添加到 firestore 中。 使用 new Date() 将其转换为日期给我 Date { NaN } 并使用 firestore 方法 firebase.firestore.Timestamp.fromDate(works) 给我 Object { “纳秒”:NaN, “秒”:NaN, }
我哪里出错了?
您应该解析日期字符串,然后将其转换为 date()
对象。请参阅下面的示例代码:
// Initiate a new Date object.
const eventTimestamp = new Date(
// Parse the string into a date
Date.parse(
`${finalDate} ${finalTime}`
)
)
await setDoc(doc(db, "<collection>", "<document-id>"), {
timestamp: eventTimestamp
});
有关更多信息,您可以查看此 documentation。