util.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. var SIGN_REGEXP = /([yMdhsm])(\1*)/g;
  2. var DEFAULT_PATTERN = 'yyyy-MM-dd';
  3. function padding(s, len) {
  4. var len = len - (s + '').length;
  5. for (var i = 0; i < len; i++) { s = '0' + s; }
  6. return s;
  7. };
  8. export default {
  9. getQueryStringByName: function (name) {
  10. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  11. var r = window.location.search.substr(1).match(reg);
  12. var context = "";
  13. if (r != null)
  14. context = r[2];
  15. reg = null;
  16. r = null;
  17. return context == null || context == "" || context == "undefined" ? "" : context;
  18. },
  19. formatDate: {
  20. format: function (date, pattern) {
  21. pattern = pattern || DEFAULT_PATTERN;
  22. return pattern.replace(SIGN_REGEXP, function ($0) {
  23. switch ($0.charAt(0)) {
  24. case 'y': return padding(date.getFullYear(), $0.length);
  25. case 'M': return padding(date.getMonth() + 1, $0.length);
  26. case 'd': return padding(date.getDate(), $0.length);
  27. case 'w': return date.getDay() + 1;
  28. case 'h': return padding(date.getHours(), $0.length);
  29. case 'm': return padding(date.getMinutes(), $0.length);
  30. case 's': return padding(date.getSeconds(), $0.length);
  31. }
  32. });
  33. },
  34. parse: function (dateString, pattern) {
  35. var matchs1 = pattern.match(SIGN_REGEXP);
  36. var matchs2 = dateString.match(/(\d)+/g);
  37. if (matchs1.length == matchs2.length) {
  38. var _date = new Date(1970, 0, 1);
  39. for (var i = 0; i < matchs1.length; i++) {
  40. var _int = parseInt(matchs2[i]);
  41. var sign = matchs1[i];
  42. switch (sign.charAt(0)) {
  43. case 'y': _date.setFullYear(_int); break;
  44. case 'M': _date.setMonth(_int - 1); break;
  45. case 'd': _date.setDate(_int); break;
  46. case 'h': _date.setHours(_int); break;
  47. case 'm': _date.setMinutes(_int); break;
  48. case 's': _date.setSeconds(_int); break;
  49. }
  50. }
  51. return _date;
  52. }
  53. return null;
  54. }
  55. }
  56. };