1 function formatDate(datetime) { 2 // 獲取年月日時分秒值 slice(-2)過濾掉大於10日期前面的0 3 var year = datetime.getFullYear(), 4 month = ("0" + (datetime.getMonth() + 1)).slice(-2), 5 date = ("0" + datetime.getDate()).slice(-2), 6 hour = ("0" + datetime.getHours()).slice(-2), 7 minute = ("0" + datetime.getMinutes()).slice(-2), 8 second = ("0" + datetime.getSeconds()).slice(-2); 9 // 拼接 10 var result = year + "-"+ month +"-"+ date +" "+ hour +":"+ minute +":" + second; 11 // 返回 12 return result; 13 } 14 15 var date = new Date(); 16 console.log(formatDate(date)); // 2018-05-26 23:09:26
根據開始日期和期限,計算結束日期spa
1 //date: 日期字符串yyyy-MM-dd,如:2016-02-14 2 //years:年份,正整數字符串 3 //返回日期字符串yyyy-MM-dd,如:2016-02-14 4 function dateAddYear(date, years) { 5 var now = new Date(date); 6 var intYear = now.getFullYear() + parseInt(years); 7 var intMonth = now.getMonth() + 1; //正常的月份, 8 var intDay = now.getDate() - 1; //日期-1 9 if (intDay == 0) { 10 intMonth--; //減小一個月 11 if (intMonth == 0) { 12 intYear--; //0:減小一年 13 intMonth = 12; 14 intDay = 31; 15 } 16 else if (intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) { 17 intDay = 30; //4,6,9,11:30天 18 } 19 else if (intMonth == 2) { 20 intDay = 28; //2:28/29 21 if (intYear % 4 == 0) { 22 intDay = 29; 23 } 24 } else { 25 intDay = 31; //1,3,5,7,8,10,12 :31天 26 } 27 } 28 29 var strMonth = (intMonth) < 10 ? "0" + (intMonth).toString() : (intMonth).toString(); 30 var strDay = (intDay) < 10 ? "0" + (intDay).toString() : (intDay).toString(); 31 var strEndDate = intYear + "-" + strMonth + "-" + strDay; 32 return strEndDate; 33 } 34 35 console.log(dateAddYear('2018-6-10','2')); // 2020-06-09
beginDate是開始日期,字符串格式code
count是指多少天,整型數orm
注意:setDate和getDate結合使用對象
date.setDate(date.getDate() + count);blog
1 function calculateDate(beginDate,count){ 2 var date = new Date(beginDate); 3 date.setDate(date.getDate() + count); 4 var year = date.getFullYear(); 5 var month = ("0" + (date.getMonth()+1)).slice(-2); 6 var day = ("0" + date.getDate()).slice(-2); 7 var hours = ("0" + date.getHours()).slice(-2); 8 var minute = ("0" + date.getMinutes()).slice(-2); 9 var second = ("0" + date.getSeconds()).slice(-2); 10 11 var endDate = year + "-"+ month +"-"+ day +" "+ hours +":"+ minute +":" + second; 12 13 return endDate; 14 } 15 16 console.log(calculateDate('2018-5-26 23:50:32',30)); // 2018-06-25 23:50:32
1 function addMonth(date,monthNum){ 2 var str = date.split('-'); 3 var day = parseInt(str[2]); 4 var nextMonth = new Date( str[0], parseInt(str[1])+monthNum, 0); 5 var max = nextMonth.getDate(); 6 endDate = new Date( str[0],str[1]-1+monthNum,day>max? max: day ); 7 return endDate.toLocaleDateString().match(/\d+/g).join('-'); 8 } 9 10 console.log(addMonth("2018-12-12",12));
1 function addMonth(date,monthNum){ 2 3 var str = date.split('-'); 4 var oldDate = new Date(str[0], parseInt(str[1]), 0); 5 var oldDay = oldDate.getDate(); 6 console.log(oldDay); 7 var day = parseInt(str[2]); 8 var nextMonth = new Date( str[0], parseInt(str[1])+monthNum, 0); 9 var max = nextMonth.getDate(); 10 if(day >28 && day < 31){ 11 max = max - (oldDay - day); 12 console.log(max); 13 } 14 endDate = new Date( str[0],str[1]-1+monthNum,day>max? max: day ); 15 return endDate.toLocaleDateString().match(/\d+/g).join('-'); 16 } 17 18 console.log(addMonth("2018-1-27",1));