javascript - הוסף 12 חודשים לתאריך הנוכחי


שלום, אני רוצה להוסיף 12 חודשים ולהחסיר יום אחד מהתאריך הנוכחי שלי.

דוגמא :

  1. valStartDate :2018-01-20

  2. תאריך_צפוי:2019-01-19

ניסיתי את הקוד למטה אבל יש שגיאה "getFullYear() לא פונקציה שמורשית"

this.endDate =this.valStartDate.getFullYear()+1+'-'+this.valStartDate.getMonth()+'-'+(this.valStartDate.getDate()-1);

תשובה #1

וודא שהתאריך ההתחלתי שנתת הוא תאריך ולא מחרוזת.

var startDate = new Date(2018, 0, 20);
var startDatePlus12Months = new Date(startDate.setMonth(startDate.getMonth() + 12));
var expectedDate = new Date(startDatePlus12Months.getFullYear(), startDatePlus12Months.getMonth(), startDatePlus12Months.getDate() - 1);

תשובה #2

הנה שיטה להפרדת התאריך שאתה רוצה, החל שיטה זו על המשתנה וצריך שיהיה בסדר.

var date = new Date(); // now 
var newDate = new Date(date.getFullYear() + 1, date.getMonth(), date.getDate() - 1);

console.log(newDate.toLocaleDateString());

this.valStartDate.getFullYear() כדי שזה יעבוד, this.valStartDate חייב להיות תאריך JavaScript תקין ולהיראות באותו פורמט ש-new Date(); היה נותן לך.

Fri Apr 26 2019 11:52:15 GMT+0100 (British Summer Time)