国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript實現日期按月份加減

2024-05-06 16:20:20
字體:
來源:轉載
供稿:網友

JavaScript實現日期加減計算功能代碼實例,因為在js中沒有類似C#中的AddDays方法,所以要想實現日期加減的話,就需要自己寫函數來實現。這里分享給大家,有需要的小伙伴可以參考下

項目中需要用到,自己寫了一個。javascript日期按月加減

 

 
  1. <!DOCTYPE html> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <meta charset="utf-8"
  5. <title></title> 
  6. <script> 
  7. function dateToDate(date) { 
  8. var sDate = new Date(); 
  9. if (typeof date == 'object' 
  10. && typeof new Date().getMonth == "function" 
  11. ) { 
  12. sDate = date; 
  13. else if (typeof date == "string") { 
  14. var arr = date.split('-'
  15. if (arr.length == 3) { 
  16. sDate = new Date(arr[0] + '-' + arr[1] + '-' + arr[2]); 
  17.  
  18. return sDate; 
  19.  
  20.  
  21. function addMonth(date, num) { 
  22. num = parseInt(num); 
  23. var sDate = dateToDate(date); 
  24.  
  25. var sYear = sDate.getFullYear(); 
  26. var sMonth = sDate.getMonth() + 1; 
  27. var sDay = sDate.getDate(); 
  28.  
  29. var eYear = sYear; 
  30. var eMonth = sMonth + num; 
  31. var eDay = sDay; 
  32. while (eMonth > 12) { 
  33. eYear++; 
  34. eMonth -= 12; 
  35.  
  36. var eDate = new Date(eYear, eMonth - 1, eDay); 
  37.  
  38. while (eDate.getMonth() != eMonth - 1) { 
  39. eDay--; 
  40. eDate = new Date(eYear, eMonth - 1, eDay); 
  41.  
  42. return eDate; 
  43.  
  44. function calcDate() { 
  45. var d = document.getElementById('date').value; 
  46. var n = document.getElementById('num').value; 
  47. var eDate = addMonth(d, n); 
  48. document.getElementById('result').innerHTML = eDate.getFullYear() + '-' + (eDate.getMonth() + 1) + '-' + eDate.getDate(); 
  49. </script> 
  50. </head> 
  51. <body> 
  52. <input type="date" id="date" /> 
  53. <input type="number" id="num" value="1" /> 
  54. <input type="button" value="計算" onclick="calcDate()" /> 
  55. <div id="result"></div> 
  56. </body> 
  57. </html> 

方法二:

 

 
  1. <script language="javascript"
  2. Date.prototype.Format = function(fmt)  
  3. //代碼作者: meizz  
  4. var o = 
  5. {  
  6. "M+" : this.getMonth() + 1, //月份  
  7. "d+" : this.getDate(), //日  
  8. "h+" : this.getHours(), //小時  
  9. "m+" : this.getMinutes(), //分  
  10. "s+" : this.getSeconds(), //秒  
  11. "q+" : Math.floor((this.getMonth() + 3) / 3), //季度  
  12. "S" : this.getMilliseconds() //毫秒  
  13. };  
  14. if (/(y+)/.test(fmt))  
  15. fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));  
  16. for (var k in o)  
  17. if (new RegExp("(" + k + ")").test(fmt))  
  18. fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));  
  19. return fmt;  
  20. Date.prototype.addDays = function(d) 
  21. this.setDate(this.getDate() + d); 
  22. }; 
  23. Date.prototype.addWeeks = function(w) 
  24. this.addDays(w * 7); 
  25. }; 
  26. Date.prototype.addMonths= function(m) 
  27. var d = this.getDate(); 
  28. this.setMonth(this.getMonth() + m); 
  29. if (this.getDate() < d) 
  30. this.setDate(0); 
  31. }; 
  32. Date.prototype.addYears = function(y) 
  33. var m = this.getMonth(); 
  34. this.setFullYear(this.getFullYear() + y); 
  35. if (m < this.getMonth())  
  36. this.setDate(0); 
  37. }; 
  38. </script> 

方法三:

 

 
  1. <script>  
  2. function DateAdd(interval,number,date)  
  3. {  
  4. /*  
  5. *--------------- DateAdd(interval,number,date) -----------------  
  6. * DateAdd(interval,number,date)  
  7. * 功能:實現VBScript的DateAdd功能.  
  8. * 參數:interval,字符串表達式,表示要添加的時間間隔.  
  9. * 參數:number,數值表達式,表示要添加的時間間隔的個數.  
  10. * 參數:date,時間對象.  
  11. * 返回:新的時間對象.  
  12. * var now = new Date();  
  13. * var newDate = DateAdd( "d ",5,now);  
  14. * author:wanghr100(灰豆寶寶.net)  
  15. * update:2004-5-28 11:46  
  16. *--------------- DateAdd(interval,number,date) -----------------  
  17. */ 
  18. switch(interval)  
  19. {  
  20. case "y " : {  
  21. date.setFullYear(date.getFullYear()+number);  
  22. return date;  
  23. break;  
  24. }  
  25. case "q " : {  
  26. date.setMonth(date.getMonth()+number*3);  
  27. return date;  
  28. break;  
  29. }  
  30. case "m " : {  
  31. date.setMonth(date.getMonth()+number); 
  32. return date;  
  33. break;  
  34. }  
  35. case "w " : {  
  36. date.setDate(date.getDate()+number*7); 
  37. return date;  
  38. break;  
  39. }  
  40. case "d " : {  
  41. date.setDate(date.getDate()+number);  
  42. return date;  
  43. break;  
  44. }  
  45. case "h " : {  
  46. date.setHours(date.getHours()+number); 
  47. return date;  
  48. break;  
  49. }  
  50. case "m " : {  
  51. date.setMinutes(date.getMinutes()+number);  
  52. return date;  
  53. break;  
  54. }  
  55. case "s " : {  
  56. date.setSeconds(date.getSeconds()+number);  
  57. return date;  
  58. break;  
  59. }  
  60. default : {  
  61. date.setDate(d.getDate()+number);  
  62. return date;  
  63. break;  
  64. }  
  65. }  
  66. var now = new Date();  
  67. //加五天.  
  68. var newDate = DateAdd( "d ",5,now);  
  69. alert(newDate.toLocaleDateString())  
  70. //加兩個月.  
  71. newDate = DateAdd( "m ",2,now);  
  72. alert(newDate.toLocaleDateString())  
  73. //加一年  
  74. newDate = DateAdd( "y ",1,now);  
  75. alert(newDate.toLocaleDateString())  
  76. </script> 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 神农架林区| 呼和浩特市| 化隆| 托克逊县| 封丘县| 安岳县| 营口市| 沽源县| 库车县| 临桂县| 项城市| 合肥市| 屏东市| 两当县| 松阳县| 开封县| 民和| 中宁县| 郓城县| 潼南县| 西宁市| 永福县| 清流县| 涟水县| 买车| 华亭县| 开江县| 丹江口市| 葫芦岛市| 子长县| 鹿邑县| 旬邑县| 上高县| 伊春市| 塔城市| 通渭县| 高雄市| 碌曲县| 阆中市| 黄梅县| 崇礼县|