Javascript 如何在时间戳中添加天数?
我有一个开始日期时间戳和一个持续时间(天数),我需要得到结束日期,我厌倦了这段代码给我一个错误的结束日期时间戳Javascript 如何在时间戳中添加天数?,javascript,typescript,google-cloud-functions,Javascript,Typescript,Google Cloud Functions,我有一个开始日期时间戳和一个持续时间(天数),我需要得到结束日期,我厌倦了这段代码给我一个错误的结束日期时间戳 exports.terminateStoreAd = functions.https.onRequest(async(req, res) => { try { const snapshot =await admin.database().ref("StoreAds").once("value"); if (snaps
exports.terminateStoreAd = functions.https.onRequest(async(req, res) => {
try {
const snapshot =await admin.database().ref("StoreAds").once("value");
if (snapshot.exists()) {
snapshot.forEach(snapData => {
if (snapData.exists()) {
const endDate=new Date(snapData.val().startDate).getTime()+(snapData.val().duration*24*60*60*1000);
res.send(""+endDate);
}
});
res.send("done")
}
} catch (error) {
console.log("terminateStoreAd error :" + error.message);
}
});
我的开始日期是:1559449773
持续时间:5
结束日期:1991449773:(
提前感谢。假设开始日期为2019-05-01,那么5天后就可以使用参数化版本创建新日期了 注:本月指数为零,因此5月,第5个月指数为4。由于我希望5月1日后5天,因此我使用
1+5
作为日期:
const startDate=新日期(2019年4月1日);
const endDate=新日期(startDate.getFullYear()、startDate.getMonth()、startDate.getDate()+5);
log(`Start Date:${startDate},End Date:${endDate}`);
log(`Start Date:${startDate.valueOf()},End Date:${endDate.valueOf()}`);
足够以毫秒为单位获取所需日期(如果startDate
以毫秒为单位)
否则,如果startDate
是日期字符串
const endDate = (new Date(snapData.val().startDate)).getTime() + snapData.val().duration*24*60*60*1000;
假设您需要以毫秒为单位的
endDate
。最终我得到了解决方案
exports.terminateStoreAd = functions.https.onRequest(async(req, res) => {
try {
const snapshot =await admin.database().ref("StoreAds").once("value");
const promises = [];
if (snapshot.exists()) {
snapshot.forEach(childSnapshot => {
const endDate=childSnapshot.val().startDate + childSnapshot.val().duration * 86400;
const today=Math.round(new Date().getTime()/1000);
if (endDate <= today) {
promises.push(
admin.database().ref("StoreAdsHistory").child(childSnapshot.key).set(childSnapshot.val()),
childSnapshot.ref.remove(),
res.send()
);
}
});
}
await Promise.all(promises);
}catch (error) {
}
exports.terminateStoreAd=functions.https.onRequest(异步(req,res)=>{
试一试{
const snapshot=await admin.database().ref(“StoreAds”).once(“value”);
常量承诺=[];
if(snapshot.exists()){
snapshot.forEach(childSnapshot=>{
const endDate=childSnapshot.val().startDate+childSnapshot.val().duration*86400;
const today=Math.round(new Date().getTime()/1000);
如果(endDate)结束日期应该是什么?你确定你从duration中得到了期望值吗?@Doug Stevenson duration的期望值是错误的,经过2天的搜索,我发现等式是错误的,正确的是:const endDate=childSnapshot.val().startDate+childSnapshot.val().duration*86400;
exports.terminateStoreAd = functions.https.onRequest(async(req, res) => {
try {
const snapshot =await admin.database().ref("StoreAds").once("value");
const promises = [];
if (snapshot.exists()) {
snapshot.forEach(childSnapshot => {
const endDate=childSnapshot.val().startDate + childSnapshot.val().duration * 86400;
const today=Math.round(new Date().getTime()/1000);
if (endDate <= today) {
promises.push(
admin.database().ref("StoreAdsHistory").child(childSnapshot.key).set(childSnapshot.val()),
childSnapshot.ref.remove(),
res.send()
);
}
});
}
await Promise.all(promises);
}catch (error) {
}