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

首頁 > 語言 > JavaScript > 正文

js中日期的加減法

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

JavaScript實現日期加減計算功能代碼實例,因為在js中沒有類似C#中的AddDays方法,所以要想實現日期加減的話,就需要自己寫函數來實現。

今天就算對JS中日期的加減法做個總結,一共兩步

第一步,引入date.format.js,這個JS的作用是將日期轉為指定的格式,代碼如下

 

 
  1. var dateFormat = function () { 
  2. var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])/1?|[LloSZ]|"[^"]*"|'[^']*'/g, 
  3. timezone = //b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]/d{4})?)/b/g, 
  4. timezoneClip = /[^-+/dA-Z]/g, 
  5. pad = function (val, len) { 
  6. val = String(val); 
  7. len = len || 2; 
  8. while (val.length < len) val = "0" + val; 
  9. return val; 
  10. }; 
  11.  
  12. // Regexes and supporting functions are cached through closure 
  13. return function (date, mask, utc) { 
  14. var dF = dateFormat; 
  15.  
  16. // You can't provide utc if you skip other args (use the "UTC:" mask prefix) 
  17. if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !//d/.test(date)) { 
  18. mask = date; 
  19. date = undefined; 
  20.  
  21. // Passing date through Date applies Date.parse, if necessary 
  22. date = date ? new Date(date) : new Date; 
  23. if (isNaN(date)) throw SyntaxError("invalid date"); 
  24.  
  25. mask = String(dF.masks[mask] || mask || dF.masks["default"]); 
  26.  
  27. // Allow setting the utc argument via the mask 
  28. if (mask.slice(0, 4) == "UTC:") { 
  29. mask = mask.slice(4); 
  30. utc = true
  31.  
  32. var _ = utc ? "getUTC" : "get"
  33. d = date[_ + "Date"](), 
  34. D = date[_ + "Day"](), 
  35. m = date[_ + "Month"](), 
  36. y = date[_ + "FullYear"](), 
  37. H = date[_ + "Hours"](), 
  38. M = date[_ + "Minutes"](), 
  39. s = date[_ + "Seconds"](), 
  40. L = date[_ + "Milliseconds"](), 
  41. o = utc ? 0 : date.getTimezoneOffset(), 
  42. flags = { 
  43. d: d, 
  44. dd: pad(d), 
  45. ddd: dF.i18n.dayNames[D], 
  46. dddd: dF.i18n.dayNames[D + 7], 
  47. m: m + 1, 
  48. mm: pad(m + 1), 
  49. mmm: dF.i18n.monthNames[m], 
  50. mmmm: dF.i18n.monthNames[m + 12], 
  51. yy: String(y).slice(2), 
  52. yyyy: y, 
  53. h: H % 12 || 12, 
  54. hh: pad(H % 12 || 12), 
  55. H: H, 
  56. HH: pad(H), 
  57. M: M, 
  58. MM: pad(M), 
  59. s: s, 
  60. ss: pad(s), 
  61. l: pad(L, 3), 
  62. L: pad(L > 99 ? Math.round(L / 10) : L), 
  63. t: H < 12 ? "a" : "p"
  64. tt: H < 12 ? "am" : "pm"
  65. T: H < 12 ? "A" : "P"
  66. TT: H < 12 ? "AM" : "PM"
  67. Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""), 
  68. o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), 
  69. S: ["th""st""nd""rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10] 
  70. }; 
  71.  
  72. return mask.replace(token, function ($0) { 
  73. return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); 
  74. }); 
  75. }; 
  76. }(); 
  77.  
  78. // Some common format strings 
  79. dateFormat.masks = { 
  80. "default""ddd mmm dd yyyy HH:MM:ss"
  81. shortDate: "m/d/yy"
  82. mediumDate: "mmm d, yyyy"
  83. longDate: "mmmm d, yyyy"
  84. fullDate: "dddd, mmmm d, yyyy"
  85. shortTime: "h:MM TT"
  86. mediumTime: "h:MM:ss TT"
  87. longTime: "h:MM:ss TT Z"
  88. isoDate: "yyyy-mm-dd"
  89. isoTime: "HH:MM:ss"
  90. isoDateTime: "yyyy-mm-dd'T'HH:MM:ss"
  91. isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" 
  92. }; 
  93.  
  94. // Internationalization strings 
  95. dateFormat.i18n = { 
  96. dayNames: [ 
  97. "Sun""Mon""Tue""Wed""Thu""Fri""Sat"
  98. "Sunday""Monday""Tuesday""Wednesday""Thursday""Friday""Saturday" 
  99. ], 
  100. monthNames: [ 
  101. "Jan""Feb""Mar""Apr""May""Jun""Jul""Aug""Sep""Oct""Nov""Dec"
  102. "January""February""March""April""May""June""July""August""September""October""November""December" 
  103. }; 
  104.  
  105. // For convenience... 
  106. Date.prototype.format = function (mask, utc) { 
  107. return dateFormat(this, mask, utc); 
  108. }; 

第二步,將時間轉換為毫秒進行加減計算,然后再用上面的js的轉為指定的日期

 

 
  1. var nowDate = new Date(); 
  2. //加法操作 
  3. var ysDate = new Date(nowDate.getTime()-30*24*60*60*1000).format('yyyy-mm-dd'); 
  4. //減法操作 
  5. var yeDate = new Date(nowDate.getTime()-24*60*60*1000).format('yyyy-m-d'); 

通過以上兩步就實現了,JS中日期的加減法,怎么樣簡單吧!快去試試!

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

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

圖片精選

主站蜘蛛池模板: 龙泉市| 韶关市| 临高县| 根河市| 五华县| 隆德县| 南溪县| 中卫市| 铅山县| 汽车| 洪湖市| 醴陵市| 郑州市| 乐清市| 葫芦岛市| 农安县| 丰都县| 积石山| 安远县| 抚顺县| 永嘉县| 上思县| 镇安县| 娄烦县| 额济纳旗| 大城县| 九江市| 新巴尔虎左旗| 中江县| 肇州县| 广平县| 子洲县| 海原县| 新安县| 射阳县| 金阳县| 盐源县| 墨玉县| 万荣县| 江华| 平定县|