How to add weeks to date using javascript?

前端 未结 8 844
轻奢々
轻奢々 2020-12-29 18:32

Javascript definitely isn\'t my strongest point. I\'ve been attempting this for a couple of hours now and seem to be getting stuck with date formatting somewhere.

I

8条回答
  •  灰色年华
    2020-12-29 19:03

    You're assigning date1 to be a Date object which represents the string you pass it. What you're seeing in the acceptLicense value is the toString() representation of the date object (try alert(date1.toString()) to see this).

    To output as you want, you'll have to use string concatenation and the various Date methods.

    var formattedDate = date1.getDate() + '/' + (date1.getMonth() + 1) + '/' + date1.getFullYear();
    

    In terms of adding 2 weeks, you should add 14 days to the current date;

    date1.setDate(date.getDate() + 14);
    

    ... this will automatically handle the month increase etc.

    In the end, you'll end up with;

    var date1 = new Date(acceptCompletionDate);
    date1.setDate(date1.getDate() + 14);
    document.frmAccept.acceptLicence.value = date1.getDate() + '/' + (date1.getMonth() + 1) + '/' + date1.getFullYear();
    

    N.B Months in JavaScript are 0-indexed (Jan = 0, Dec = 11), hence the +1 on the month.

    Edit: To address your comment, you should construct date as follows instead, as the Date argument is supposed to be "A string representing an RFC2822 or ISO 8601 date." (see here).

    var segments = acceptCompletionDate.split("/");
    var date1 = new Date(segments[2], segments[1], segments[0]);
    

提交回复
热议问题