js時間戳轉換日期格式和日期計算


一、時間戳轉換日期

 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

二、合同日期計算

根據開始日期和期限,計算結束日期

 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

三、根據開始日期,計算count天過后的日期

beginDate是開始日期,字符串格式

count是指多少天,整型數

注意:setDate和getDate結合使用

date.setDate(date.getDate() + count);

 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

四、計算n月之后的日期

 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));

 

五、常用的Date對象方法

  1. Date()  返回當日的日期和時間。  
  2. getDate()   從 Date 對象返回一個月中的某一天 (1 ~ 31)。  
  3. getDay()    從 Date 對象返回一周中的某一天 (0 ~ 6)。  
  4. getMonth()  從 Date 對象返回月份 (0 ~ 11)。  
  5. getFullYear()   從 Date 對象以四位數字返回年份。  
  6. getYear()   請使用 getFullYear() 方法代替。  
  7. getHours()  返回 Date 對象的小時 (0 ~ 23)。  
  8. getMinutes()    返回 Date 對象的分鍾 (0 ~ 59)。  
  9. getSeconds()    返回 Date 對象的秒數 (0 ~ 59)。  
  10. getMilliseconds()   返回 Date 對象的毫秒(0 ~ 999)。  
  11. getTime()   返回 1970 年 1 月 1 日至今的毫秒數。  
  12. getTimezoneOffset() 返回本地時間與格林威治標准時間 (GMT) 的分鍾差。  
  13. getUTCDate()    根據世界時從 Date 對象返回月中的一天 (1 ~ 31)。  
  14. getUTCDay() 根據世界時從 Date 對象返回周中的一天 (0 ~ 6)。  
  15. getUTCMonth()   根據世界時從 Date 對象返回月份 (0 ~ 11)。  
  16. getUTCFullYear()    根據世界時從 Date 對象返回四位數的年份。  
  17. getUTCHours()   根據世界時返回 Date 對象的小時 (0 ~ 23)。  
  18. getUTCMinutes() 根據世界時返回 Date 對象的分鍾 (0 ~ 59)。  
  19. getUTCSeconds() 根據世界時返回 Date 對象的秒鍾 (0 ~ 59)。  
  20. getUTCMilliseconds()    根據世界時返回 Date 對象的毫秒(0 ~ 999)。  
  21. parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒數。  
  22. setDate()   設置 Date 對象中月的某一天 (1 ~ 31)。  
  23. setMonth()  設置 Date 對象中月份 (0 ~ 11)。  
  24. setFullYear()   設置 Date 對象中的年份(四位數字)。  
  25. setYear()   請使用 setFullYear() 方法代替。  
  26. setHours()  設置 Date 對象中的小時 (0 ~ 23)。  
  27. setMinutes()    設置 Date 對象中的分鍾 (0 ~ 59)。  
  28. setSeconds()    設置 Date 對象中的秒鍾 (0 ~ 59)。  
  29. setMilliseconds()   設置 Date 對象中的毫秒 (0 ~ 999)。  
  30. setTime()   以毫秒設置 Date 對象。  
  31. setUTCDate()    根據世界時設置 Date 對象中月份的一天 (1 ~ 31)。  
  32. setUTCMonth()   根據世界時設置 Date 對象中的月份 (0 ~ 11)。  
  33. setUTCFullYear()    根據世界時設置 Date 對象中的年份(四位數字)。  
  34. setUTCHours()   根據世界時設置 Date 對象中的小時 (0 ~ 23)。  
  35. setUTCMinutes() 根據世界時設置 Date 對象中的分鍾 (0 ~ 59)。  
  36. setUTCSeconds() 根據世界時設置 Date 對象中的秒鍾 (0 ~ 59)。  
  37. setUTCMilliseconds()    根據世界時設置 Date 對象中的毫秒 (0 ~ 999)。  
  38. toSource()  返回該對象的源代碼。  
  39. toString()  把 Date 對象轉換為字符串。  
  40. toTimeString()  把 Date 對象的時間部分轉換為字符串。  
  41. toDateString()  把 Date 對象的日期部分轉換為字符串。  
  42. toGMTString()   請使用 toUTCString() 方法代替。  
  43. toUTCString()   根據世界時,把 Date 對象轉換為字符串。  
  44. toLocaleString()    根據本地時間格式,把 Date 對象轉換為字符串。  
  45. toLocaleTimeString()    根據本地時間格式,把 Date 對象的時間部分轉換為字符串。  
  46. toLocaleDateString()    根據本地時間格式,把 Date 對象的日期部分轉換為字符串。  
  47. UTC()   根據世界時返回 1970 年 1 月 1 日 到指定日期的毫秒數。  
  48. valueOf()   返回 Date 對象的原始值。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM