1. export default {
  2. formatDate: {
  3. formatCommon(date, fmt='yyyy-MM-dd hh:mm:ss') { // 通用日期格式化
  4. if(!date) {return ''}
  5. var o = {
  6. "M+" : date.getMonth()+1, //月份
  7. "d+" : date.getDate(), //日
  8. "h+" : date.getHours(), //小时
  9. "H+" : date.getHours(), //小时
  10. "m+" : date.getMinutes(), //分
  11. "s+" : date.getSeconds(), //秒
  12. "q+" : Math.floor((date.getMonth()+3)/3), //季度
  13. "S" : date.getMilliseconds() //毫秒
  14. };
  15. if(/(y+)/.test(fmt)) {
  16. fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
  17. }
  18. for(var k in o) {
  19. if(new RegExp("("+ k +")").test(fmt)){
  20. fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
  21. }
  22. }
  23. return fmt;
  24. },
  25. formatDateTime: function (val) { // 1487935440000-> 2017-02-24 19:24
  26. if (val === undefined || val === null || val === '') {
  27. return '';
  28. }
  29. if(typeof val=='string' && val.indexOf('-')>-1){ //这里做下容错,假如时间已经是格式化的话,则直接返回
  30. return val;
  31. }
  32. var date = new Date(val),
  33. y = date.getFullYear(),
  34. m = date.getMonth() + 1;
  35. m = m < 10 ? ('0' + m) : m;
  36. var d = date.getDate();
  37. d = d < 10 ? ('0' + d) : d;
  38. var h = date.getHours();
  39. h = h < 10 ? ('0' + h) : h;
  40. var minute = date.getMinutes();
  41. minute = minute < 10 ? ('0' + minute) : minute;
  42. return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
  43. },
  44. formatTime: function (val) { // 1487935440000-> 19:24
  45. if (val === undefined || val === null || val === '') {
  46. return '';
  47. } else {
  48. var date = new Date(val),
  49. y = date.getFullYear(),
  50. m = date.getMonth() + 1;
  51. m = m < 10 ? ('0' + m) : m;
  52. var d = date.getDate();
  53. d = d < 10 ? ('0' + d) : d;
  54. var h = date.getHours(),
  55. minute = date.getMinutes();
  56. h = h < 10 ? ('0' + h) : h;
  57. minute = minute < 10 ? ('0' + minute) : minute;
  58. return h + ':' + minute;
  59. }
  60. },
  61. formatDateTimeSecond: function (val) { // 1487935440000-> 2017-02-24 19:24:00
  62. if (val === undefined || val === null || val === '' || val === 'null') {
  63. return '';
  64. }
  65. if(typeof val=='string' && val.indexOf('-')>-1){ //这里做下容错,假如时间已经是格式化的话,则直接返回
  66. return val;
  67. }
  68. var date = new Date(val),
  69. y = date.getFullYear(),
  70. m = date.getMonth() + 1;
  71. m = m < 10 ? ('0' + m) : m;
  72. var d = date.getDate();
  73. d = d < 10 ? ('0' + d) : d;
  74. var h = date.getHours();
  75. h = h < 10 ? ('0' + h) : h;
  76. var minute = date.getMinutes();
  77. minute = minute < 10 ? ('0' + minute) : minute;
  78. var second = date.getSeconds();
  79. second = second < 10 ? ('0' + second) : second;
  80. return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
  81. },
  82. formatDate: function (val) { // 1487935440000-> 2017-02-24
  83. if (val === undefined || val === null || val === '') {
  84. return '';
  85. }
  86. if(typeof val=='string' && val.indexOf('-')>-1){ //这里做下容错,假如时间已经是格式化的话,则直接返回
  87. return val;
  88. }
  89. var date = new Date(val);
  90. var y = date.getFullYear();
  91. var m = date.getMonth() + 1;
  92. m = m < 10 ? '0' + m : m;
  93. var d = date.getDate();
  94. d = d < 10 ? ('0' + d) : d;
  95. return y + '-' + m + '-' + d;
  96. },
  97. fmtDateTime: function (val) { // mtG2939939-> 2017-02-24 19:24
  98. if (val === undefined || val === null || val === '') {
  99. return '';
  100. }
  101. if(typeof val=='string' && val.indexOf('-')>-1){ //这里做下容错,假如时间已经是格式化的话,则直接返回
  102. return val;
  103. }
  104. var date = new Date(val);
  105. let Y = date.getFullYear() + '-';
  106. let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  107. let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
  108. let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  109. let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes());
  110. return Y + M + D + h + m;
  111. },
  112. fmtDateTimeSecond: function (val) { // mtG2939939-> 2017-02-24 19:24:00
  113. if (val === undefined || val === null || val === '') {
  114. return '';
  115. }
  116. if(typeof val=='string' && val.indexOf('-')>-1){ //这里做下容错,假如时间已经是格式化的话,则直接返回
  117. return val;
  118. }
  119. var date = new Date(val);
  120. let Y = date.getFullYear() + '-';
  121. let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  122. let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
  123. let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  124. let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
  125. let s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
  126. return Y + M + D + h + m + s;
  127. },
  128. fmtDateTimeSecondEnd: function (val) { // mtG2939939-> 2017-02-24 23:59:59,
  129. if (val === undefined || val === null || val === '') {
  130. return '';
  131. }
  132. if(typeof val=='string' && val.indexOf('-')>-1){ //这里做下容错,假如时间已经是格式化的话,则直接返回
  133. return val;
  134. }
  135. var date = new Date(val);
  136. let Y = date.getFullYear() + '-';
  137. let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  138. let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
  139. let s = '23:59:59'
  140. return Y + M + D + s;
  141. },
  142. fmtDate: function (val) { // mtG2939939-> 2017-02-24
  143. if (val === undefined || val === null || val === '') {
  144. return '';
  145. }
  146. if(typeof val=='string' && val.indexOf('-')>-1){ //这里做下容错,假如时间已经是格式化的话,则直接返回
  147. return val;
  148. }
  149. var date = new Date(val);
  150. let Y = date.getFullYear() + '-';
  151. let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  152. let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate());
  153. return Y + M + D;
  154. },
  155. fmtTime: function (val) { // mtG2939939-> 15:30
  156. if (val === undefined || val === null || val === '') {
  157. return '';
  158. } else {
  159. var date = new Date(val);
  160. let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
  161. let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes());
  162. return h + m;
  163. }
  164. },
  165. nowFormatDate: function (_time) { // 当前时间多少小时之后-->*年*月*日 *时*分
  166. var today = new Date();
  167. var times = today.getTime() + _time; // 获取毫秒数 ,1000*60*60*24*day
  168. today.setTime(times); // 注意,这行是关键代码
  169. var year = today.getFullYear();
  170. var month = today.getMonth() + 1;
  171. var strDate = today.getDate();
  172. var seperator1 = '-';
  173. var seperator2 = ':';
  174. if (month >= 1 && month <= 9) {
  175. month = '0' + month;
  176. }
  177. if (strDate >= 0 && strDate <= 9) {
  178. strDate = '0' + strDate;
  179. }
  180. var currentdate = year + seperator1 + month + seperator1 + strDate + ' ' + today.getHours() + seperator2 + today.getMinutes();
  181. return currentdate;
  182. },
  183. nextFormatDate: function (_time) { // 当前时间多少小时之后-->*年*月*日 *时*分
  184. var today = new Date();
  185. var times = today.getTime() + _time; // 获取毫秒数 ,1000*60*60*24*day
  186. today.setTime(times); // 注意,这行是关键代码
  187. var year = today.getFullYear();
  188. var month = today.getMonth() + 1;
  189. var strDate = today.getDate();
  190. var strHours = today.getHours();
  191. var strMinutes = today.getMinutes();
  192. var seperator1 = '-';
  193. var seperator2 = ':';
  194. if (month >= 1 && month <= 9) {
  195. month = '0' + month;
  196. }
  197. if (strDate >= 0 && strDate <= 9) {
  198. strDate = '0' + strDate;
  199. }
  200. if (strHours >= 0 && strHours <= 9) {
  201. strHours = '0' + strHours;
  202. }
  203. if (strMinutes >= 0 && strMinutes <= 9) {
  204. strMinutes = '0' + strMinutes;
  205. }
  206. var currentdate = year + seperator1 + month + seperator1 + strDate + ' ' + strHours + seperator2 + strMinutes + seperator2 + '00';
  207. return currentdate;
  208. },
  209. nowFormatSecond: function (_time) { // 当前时间多少小时之后-->*年*月*日 *时*分*秒
  210. var today = new Date();
  211. var times = today.getTime() + _time; // 获取毫秒数 ,1000*60*60*24*day
  212. today.setTime(times); // 注意,这行是关键代码
  213. var year = today.getFullYear();
  214. var month = today.getMonth() + 1;
  215. var strDate = today.getDate();
  216. var seperator1 = '-';
  217. var seperator2 = ':';
  218. if (month >= 1 && month <= 9) {
  219. month = '0' + month;
  220. }
  221. if (strDate >= 0 && strDate <= 9) {
  222. strDate = '0' + strDate;
  223. }
  224. var currentdate = year + seperator1 + month + seperator1 + strDate + ' ' + today.getHours() + seperator2 + today.getMinutes() + seperator2 + today.getSeconds();
  225. return currentdate;
  226. },
  227. getDay: function (day) { // 获取前一天、后一天的日期等
  228. var today = new Date();
  229. var times = today.getTime() + 1000 * 60 * 60 * 24 * day;
  230. today.setTime(times); // 注意,这行是关键代码
  231. var Year = today.getFullYear();
  232. var month = today.getMonth() + 1;
  233. var strDate = today.getDate();
  234. if (month >= 1 && month <= 9) {
  235. month = '0' + month;
  236. }
  237. if (strDate >= 0 && strDate <= 9) {
  238. strDate = '0' + strDate;
  239. }
  240. return Year + '-' + month + '-' + strDate;
  241. },
  242. formatSeconds: function (value) { //把秒数转化成 *时*分*秒
  243. var seconds = parseInt(value); // 秒
  244. var minutes = 0; // 分
  245. var hours = 0; // 小时
  246. if (seconds > 60) {
  247. minutes = parseInt(seconds / 60);
  248. seconds = parseInt(seconds % 60);
  249. if (minutes > 60) {
  250. hours = parseInt(minutes / 60);
  251. minutes = parseInt(minutes % 60);
  252. }
  253. }
  254. var result = '' + parseInt(seconds) + '秒';
  255. if (minutes > 0) {
  256. result = '' + parseInt(minutes) + '分' + result;
  257. }
  258. if (hours > 0) {
  259. result = '' + parseInt(hours) + '小时' + result;
  260. }
  261. return result;
  262. },
  263. formatSecondsTime: function (value) { //把秒数转化成 00:01:02
  264. let second = parseInt(value), // 秒
  265. minute = 0, // 分
  266. hour = 0, // 小时
  267. result = '';
  268. if (value === null || value === '') {
  269. return '00:00:00';
  270. }
  271. if (second > 60) {
  272. minute = (second - (second % 60)) / 60;
  273. second = second % 60;
  274. if (minute > 60) {
  275. hour = (minute - (minute % 60)) / 60;
  276. minute = minute % 60;
  277. result = (hour >= 10 ? hour : '0' + hour) + ':' + (minute >= 10 ? minute : '0' + minute) + ':' + (second >= 10 ? second : '0' + second);
  278. } else {
  279. result = '00:' + (minute >= 10 ? minute : '0' + minute) + ':' + (second >= 10 ? second : '0' + second);
  280. }
  281. } else {
  282. result = '00:00:' + (second >= 10 ? second : '0' + second);
  283. }
  284. return result;
  285. },
  286. formatDuration: function (val) { // 毫秒转换为 时分秒显示,例如:112:12:23(112小时12分钟23秒)
  287. if (val === undefined || val === null || val === '') {
  288. return '';
  289. }
  290. let retArr = [];
  291. let second = val % 60; // 秒
  292. retArr.unshift(('0' + second).slice(-2));
  293. if (val - second > 0) {
  294. let minute = (val - second) / 60 % 60;
  295. retArr.unshift(('0' + minute).slice(-2));
  296. if (val - second - minute * 60 > 0) {
  297. let hour = (val - second - minute * 60) / 60 / 60;
  298. if (hour < 10) {
  299. retArr.unshift(('0' + hour));
  300. } else {
  301. retArr.unshift(('' + hour));
  302. }
  303. } else {
  304. retArr.unshift('00');
  305. }
  306. } else {
  307. retArr.unshift('00');
  308. retArr.unshift('00');
  309. }
  310. return retArr.join(':');
  311. },
  312. getNowFormatDate: function () {
  313. var date = new Date();
  314. var seperator1 = "-";
  315. var year = date.getFullYear();
  316. var month = date.getMonth() + 1;
  317. var strDate = date.getDate();
  318. if (month >= 1 && month <= 9) {
  319. month = "0" + month;
  320. }
  321. if (strDate >= 0 && strDate <= 9) {
  322. strDate = "0" + strDate;
  323. }
  324. var currentdate = year + seperator1 + month + seperator1 + strDate;
  325. return currentdate;
  326. },
  327. getMonthFirstDay: function () { // 获取当月第一天
  328. var date = new Date();
  329. var seperator1 = "-";
  330. var year = date.getFullYear();
  331. var month = date.getMonth() + 1;
  332. var strDate = '01';
  333. if (month >= 1 && month <= 9) {
  334. month = "0" + month;
  335. }
  336. var currentdate = year + seperator1 + month + seperator1 + strDate;
  337. return currentdate;
  338. },
  339. comperNowDate: function (datastr) {
  340. if (!datastr) {
  341. return;
  342. }
  343. var date = new Date();
  344. var seperator1 = "-";
  345. var year = date.getFullYear();
  346. var month = date.getMonth() + 1;
  347. var strDate = date.getDate();
  348. var currentdatestr = datastr;
  349. var datastrArray = datastr.split('-');
  350. if (month >= 1 && month <= 9) {
  351. month = "0" + month;
  352. }
  353. if (strDate >= 0 && strDate <= 9) {
  354. strDate = "0" + strDate;
  355. }
  356. var currentdate = year + seperator1 + month + seperator1 + strDate;
  357. if (datastr === currentdate) {
  358. currentdatestr = '今日';
  359. } else if (datastrArray[0] === year && datastrArray[1] === month && parseInt(datastrArray[2]) + 1 === parseInt(strDate)) {
  360. currentdatestr = '昨日';
  361. } else if (datastrArray[0] === year && datastrArray[1] === month && parseInt(datastrArray[2]) - 1 === parseInt(strDate)) {
  362. currentdatestr = '明日';
  363. }
  364. return currentdatestr;
  365. },
  366. isForwardDatetime: function (val) { // 是否为将来时间,2019-10-11 12:00:01 比当前时间超前返回true,反之返回false
  367. const nowDate = new Date();
  368. const nowTimes = nowDate.getTime();
  369. const valDate = new Date(val);
  370. const valTimes = valDate.getTime();
  371. if (nowTimes >= valTimes) {
  372. return false;
  373. }
  374. return true;
  375. },
  376. }
  377. };

初始化时间范围

  1. /**
  2. * [getMonthDaysTimeRange 初始化30天的选择范围]
  3. * @return {[Array]} [时间范围数组]
  4. */
  5. export function getMonthDaysTimeRange () {
  6. let now = new Date();
  7. return [new Date(now.setHours(0, 0, 0, 0) - (30 * 24 * 60 * 60 * 1000)), new Date(now.setHours(0, 0, 0, 0) + 24 * 60 * 60 * 1000 - 1)];
  8. }
  9. /**
  10. * [getSevenDaysTimeRange 初始化七天的选择范围 20**-**-** 00:00:00 到 20**-**-** 23:59:59]
  11. * @return {[Array]} [时间范围数组]
  12. */
  13. export function getSevenDaysTimeRange () {
  14. let now = new Date();
  15. return [new Date(now.setHours(0, 0, 0, 0) - 604800000), new Date(now.setHours(0, 0, 0, 0) + 24 * 60 * 60 * 1000 - 1)];
  16. }
  17. /**
  18. * [getTodayTimeRange 初始化一天的选择范围 20**-**-** 00:00:00 到 20**-**-** 23:59:59]
  19. * @return {[Array]} [时间范围数组]
  20. */
  21. export function getTodayTimeRange () {
  22. let now = new Date();
  23. return [new Date(now.setHours(0, 0, 0, 0)), new Date(now.setHours(0, 0, 0, 0) + 24 * 60 * 60 * 1000 - 1)];
  24. }