设置日期为所选日期时间的 X 天(月)后

我的需求是使用Layui的layDate 日期与时间组件设置一个业务申请的开始和结束时间。选择开始时间后自动将结束时间设置为5天后。先贴出通用代码,然后贴出我的需求代码。

通用代码(初始化日期字符串后进行相关操作):

var DateStr = "2019-05-06 18:19:56";//初始化一个时间字符串,可以只初始化到日期("2019-05-06")

DateStr = DateStr.replace(/-/g, '/');//装换成"2019/05/06 18:19:56"格式,可以直接使用new Date()来获取时间戳,有的环境不需要转换

var TimeStamp = new Date(DateStr );//获取时间戳

var TargetTimeStamp_Day = TimeStamp.setDate(TimeStamp.getDate() + 5);//将时间设置成时间戳后加5天

var TargetTimeStamp_Month = TimeStamp.setMonth(TimeStamp.getMonth() + 8);//将时间设置成时间戳后加8个月

var TargetTime_Day = format(TargetTimeStamp_Day );//将时间戳装换成时间字符串
var TargetTime_Month = format(TargetTimeStamp_Month );//将时间戳装换成时间字符串

function format(shijianchuo) {
    function add0(m) { return m < 10 ? '0' + m : m }
    //shijianchuo是整数,否则要parseInt转换
    var time = new Date(shijianchuo);
    var y = time.getFullYear();
    var m = time.getMonth() + 1;
    var d = time.getDate();
    var h = time.getHours();
    var mm = time.getMinutes();
    var s = time.getSeconds();
    return y + '-' + add0(m) + '-' + add0(d) + ' ' + add0(h) + ':' + add0(mm) + ':' + add0(s);
}

我的需求(日期字符串在layui组件中选择):

laydate.render({
     elem: '#StartDate'
    , type: 'datetime'
    , value: jyrq
    , done: function (value, date, endDate) {
        //var StartDateTimeStr = value.replace(/-/g, '/');
        var StartDateTimeStamp = new Date(value);
        var EndTimeTimeStamp = StartDateTimeStamp.setDate(StartDateTimeStamp.getDate() + 5);//转换成时间戳后加5天
        var EndTimeValue = format(EndTimeTimeStamp);//format()方法在通用代码中
        $("#EndDate").val(EndTimeValue);
     }
});

关于时间戳和时间字符串之间的转换即 format() 函数参考自:https://www.cnblogs.com/jingwhale/p/4674946.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值