function fn(date){ //將一年中前11個月份存到數組中去,后面直接判斷月份天數相加即可; var months = new Array(31,30,31,30,31,30,31,31,30,31,30); //總的天數 var sumDay=0; //獲取輸入的天數的年份 var year = +new Date(date).getFullYear() //月份 var month = +new Date(date).getMonth()+1 //天數 var day = +new Date(date).getDate() //定義一個循環,判斷月份,將前輸入的月份之前的天數想加; for(var i=0;i<month-1;i++){ sumDay=sumDay+months[i]; } //判斷是否是閏年,如果是閏年,2月份天數減去1,否則減去2,上面的2月份天數是按照30天算的;別忘記加上去它12月份的天數; if(year%4==0&&year%100!=0||year%400==0&&month>2){ sumDay=sumDay-1+day; }else{ sumDay=sumDay-2+day; } return sumDay; } console.log(fn('2019-12-31'))