如何将日期转换为时间戳,或者最好是如何在javascript中向时间戳添加n个天数
我正在使用javascript开发我不熟悉的firebase云函数。我需要为续订的用户添加n天 这是函数的一部分如何将日期转换为时间戳,或者最好是如何在javascript中向时间戳添加n个天数,javascript,firebase,google-cloud-functions,Javascript,Firebase,Google Cloud Functions,我正在使用javascript开发我不熟悉的firebase云函数。我需要为续订的用户添加n天 这是函数的一部分 ... var sellerRef = admin.firestore().doc('sellerProfile/'+req.query.sellerId) var seller = sellerRef.get().then(snapshot=>{ const data= snapshot.data()
...
var sellerRef = admin.firestore().doc('sellerProfile/'+req.query.sellerId)
var seller = sellerRef.get().then(snapshot=>{
const data= snapshot.data()
var currentDate = data.subscriptionDeadline.toDate()
Date.prototype.addDays= function(d){
this.setDate(this.getDate() + d);
return this;
};
var newDate = currentDate.addDays(30);
res.send(newDate)
})
sellerRef.update({
subscriptionDeadline: Date.parse(newDate)
})
...
在这段代码中,我得到了一个人的订阅截止日期,然后使用原型添加了30天作为订阅续订。如何将天数转换回时间戳以将新的订阅截止日期保存到firestore,或者如果我可以添加30天而不将时间戳转换为日期,则效果更好。firestore时间戳对象不提供任何日期数学操作。如果您将时间戳转换为日期(或其他可以让您进行数学运算的内容),则转换回时间戳会更容易
const timestamp = data.subscriptionDeadline;
const date = timestamp.toDate();
const laterDate = new Date(date.getTime() + 30*60*60*1000);
const laterTimestamp = admin.firestore.Timestamp.fromDate(laterDate);
我的日志中不断出现此错误
TypeError:无法读取未定义的属性“fromDate”
可能的原因是什么?我看不出您是如何导入Admin SDK的,但您需要以某种方式使用其时间戳类型从日期创建新的时间戳对象。我所展示的对一个名为admin
的变量的标准导入非常有用