date2.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. function parseDate(str){
  2. if(typeof str == 'string'){
  3. var results = str.match(/^ *(\d{4})(\d{1,2})(\d{1,2}) *$/);
  4. if(results && results.length>3)
  5. return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));
  6. results = str.match(/^ *(\d{4})(\d{1,2})(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
  7. if(results && results.length>6)
  8. return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));
  9. results = str.match(/^ *(\d{4})(\d{1,2})(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
  10. if(results && results.length>7)
  11. return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]),parseInt(results[7]));
  12. }
  13. return null;
  14. }
  15. function formatDate(v){
  16. var WEEK = ["日","一","二","三","四","五","六"];
  17. if(typeof v == 'string') v = parseDate(v);
  18. if(v instanceof Date){
  19. var m = v.getMonth() + 1;
  20. var d = v.getDate();
  21. var now = new Date();
  22. var p = '三天后';
  23. if (v.getDate() - now.getDate() == 0) {
  24. p = '今天';
  25. } else if (v.getDate() - now.getDate() == 1) {
  26. p = '明天';
  27. } else if (v.getDate() - now.getDate() == 2) {
  28. p = '后天';
  29. } else if (v.getDate() - now.getDate() < 0) {
  30. p = '';
  31. }
  32. return m + '月' + d + '日 周' + WEEK[v.getDay()] + (p == '' ? ' ' : '('+p+')');
  33. }
  34. return '';
  35. }
  36. function formatPlainDate(v) {
  37. var m = v.getMonth() + 1;
  38. var d = v.getDate();
  39. var h = v.getHours();
  40. var min = v.getMinutes();
  41. if (m < 10) {
  42. m = '0' + m;
  43. }
  44. if (d < 10) {
  45. d = '0' + d;
  46. }
  47. if (h < 10) {
  48. h = '0' + h;
  49. }
  50. if (min < 10) {
  51. min = '0' + min;
  52. }
  53. return m + '-' + d + ' ' + h + ':' + min;
  54. }
  55. function formatMMDate(v) {
  56. if(typeof v == 'string') v = parseDate(v);
  57. if(v instanceof Date){
  58. var m = v.getMonth() + 1;
  59. var d = v.getDate();
  60. return m + '月' + d + '日 ';
  61. }
  62. return '';
  63. }
  64. function formatYMDate(v) {
  65. if(typeof v == 'string') v = parseDate(v);
  66. if(v instanceof Date){
  67. var year = 1900+v.getYear();
  68. var m = v.getMonth() + 1;
  69. return year + '年' + m + '月 ';
  70. }
  71. return '';
  72. }
  73. function formatCaiDanDate(v) {
  74. if(v instanceof Date){
  75. var year = 1900+v.getYear();
  76. var m = v.getMonth() + 1;
  77. var d = v.getDate();
  78. if (m < 10) {
  79. m = '0' + m;
  80. }
  81. if (d < 10) {
  82. d = '0' + d;
  83. }
  84. return year + '-'+ m + '-' + d;
  85. }
  86. return '';
  87. }
  88. function formatDetailsDate(v) {
  89. var myDate = new Date();
  90. var nowm = myDate.getMonth(); //获取当前月份(0-11,0代表1月)
  91. var nowd = myDate.getDate(); //获取当前日(1-31)
  92. var nowh = myDate.getHours(); //获取当前小时数(0-23)
  93. var nowmin = myDate.getMinutes(); //获取当前分钟数(0-59)
  94. if(v instanceof Date){
  95. var year = 1900+v.getYear();
  96. var m = v.getMonth() + 1;
  97. var d = v.getDate();
  98. var h = v.getHours();
  99. var min = v.getMinutes();
  100. var se = v.getSeconds();
  101. if (m < 10) {
  102. m = '0' + m;
  103. }
  104. if (d < 10) {
  105. d = '0' + d;
  106. }
  107. if (h < 10) {
  108. h = '0' + h;
  109. }
  110. if (min < 10) {
  111. min = '0' + min;
  112. }
  113. if(nowd - d>1){
  114. if(nowd - d < 1){
  115. if(nowh - h<1 ){
  116. if(nowmin - min<1 ){
  117. return "刚刚";
  118. }else{
  119. return nowmin - min +"分钟前";
  120. }
  121. }else{
  122. return nowh - h +"小时前";
  123. }
  124. }else {
  125. return nowd - d +"天前";
  126. }
  127. }else{
  128. return year + '-'+ m + '-' + d + ' ' + h +':' + min+':'+se ;
  129. }
  130. }
  131. return '';
  132. }
  133. function getMM(v) {
  134. if(v instanceof Date){
  135. var m = v.getHours();
  136. var s = v.getMinutes();
  137. if (m < 10) {
  138. m = '0' + m;
  139. }
  140. if (s < 10) {
  141. s = '0' + s;
  142. }
  143. return m + ':' + s;
  144. }
  145. return '';
  146. }
  147. function formatDateParam(v) {
  148. if(v instanceof Date){
  149. var year = 1900+v.getYear();
  150. var m = v.getMonth() + 1;
  151. if (m < 10) {
  152. m = '0' + m;
  153. }
  154. var d = v.getDate();
  155. if (d < 10) {
  156. d = '0' + d;
  157. }
  158. return year + ''+ m + '' + d;
  159. }
  160. return '';
  161. }
  162. function formatAllDateParam(v) {
  163. if(v instanceof Date){
  164. var year = 1900+v.getYear();
  165. var m = v.getMonth() + 1;
  166. var d = v.getDate();
  167. if (m < 10) {
  168. m = '0' + m;
  169. }
  170. if (d < 10) {
  171. d = '0' + d;
  172. }
  173. var h = v.getHours();
  174. var f = v.getMinutes();
  175. if(h < 10){
  176. h = "0" + h;
  177. }
  178. if(f < 10){
  179. f = "0" + f;
  180. }
  181. return year + '-'+ m + '-' + d + "&nbsp;&nbsp;" + h + ":" + f;
  182. }
  183. return '';
  184. }
  185. function formatAllDateToSecond(v) {
  186. if(v instanceof Date){
  187. var year = 1900+v.getYear();
  188. var m = v.getMonth() + 1;
  189. var d = v.getDate();
  190. if (m < 10) {
  191. m = '0' + m;
  192. }
  193. if (d < 10) {
  194. d = '0' + d;
  195. }
  196. var h = v.getHours();
  197. var f = v.getMinutes();
  198. var s = v.getSeconds();
  199. if(h < 10){
  200. h = "0" + h;
  201. }
  202. if(f < 10){
  203. f = "0" + f;
  204. }
  205. if(s < 10){
  206. s = "0" + s;
  207. }
  208. return year + '-'+ m + '-' + d + "&nbsp;&nbsp;" + h + ":" + f + ":" + s;
  209. }
  210. return '';
  211. }