为了账号安全,请及时绑定邮箱和手机立即绑定

如何将天数添加到时间戳?

如何将天数添加到时间戳?

开满天机 2021-06-11 09:12:17
我有一个开始日期时间戳和一个持续时间(天数),我需要得到结束日期,我厌倦了这段代码给出了错误的结束日期时间戳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 :(提前致谢。
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

const endDate = snapData.val().startDate + snapData.val().duration*24*60*60*1000;

足以以毫秒为单位获取所需的日期(如果startDate以毫秒为单位)

否则如果startDate是日期字符串,

const endDate = (new Date(snapData.val().startDate)).getTime() + snapData.val().duration*24*60*60*1000;

假设您需要endDate以毫秒为单位。


查看完整回答
反对 回复 2021-06-18
?
慕容森

TA贡献1853条经验 获得超18个赞

最后我得到了解决方案


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) {


}

});


查看完整回答
反对 回复 2021-06-18
?
慕慕森

TA贡献1856条经验 获得超17个赞

给定开始日期 2019-05-01 然后 5 天后是使用参数化版本创建新日期的简单问题。


注意月份是零索引,所以五月,第 5 个月是索引 4。因为我想要 5 月 1 日之后的 5 天,所以我使用1+5作为日期:


const startDate = new Date(2019, 4, 1);

const endDate = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate()+5);


console.log(`Start Date: ${startDate}, End Date: ${endDate}`);

console.log(`Start Date: ${startDate.valueOf()}, End Date: ${endDate.valueOf()}`);


查看完整回答
反对 回复 2021-06-18
  • 3 回答
  • 0 关注
  • 245 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信