moment.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _moment = _interopRequireDefault(require("moment"));
  8. var _warning = require("rc-util/lib/warning");
  9. var generateConfig = {
  10. // get
  11. getNow: function getNow() {
  12. return (0, _moment.default)();
  13. },
  14. getFixedDate: function getFixedDate(string) {
  15. return (0, _moment.default)(string, 'YYYY-MM-DD');
  16. },
  17. getEndDate: function getEndDate(date) {
  18. var clone = date.clone();
  19. return clone.endOf('month');
  20. },
  21. getWeekDay: function getWeekDay(date) {
  22. var clone = date.clone().locale('en_US');
  23. return clone.weekday() + clone.localeData().firstDayOfWeek();
  24. },
  25. getYear: function getYear(date) {
  26. return date.year();
  27. },
  28. getMonth: function getMonth(date) {
  29. return date.month();
  30. },
  31. getDate: function getDate(date) {
  32. return date.date();
  33. },
  34. getHour: function getHour(date) {
  35. return date.hour();
  36. },
  37. getMinute: function getMinute(date) {
  38. return date.minute();
  39. },
  40. getSecond: function getSecond(date) {
  41. return date.second();
  42. },
  43. getMillisecond: function getMillisecond(date) {
  44. return date.millisecond();
  45. },
  46. // set
  47. addYear: function addYear(date, diff) {
  48. var clone = date.clone();
  49. return clone.add(diff, 'year');
  50. },
  51. addMonth: function addMonth(date, diff) {
  52. var clone = date.clone();
  53. return clone.add(diff, 'month');
  54. },
  55. addDate: function addDate(date, diff) {
  56. var clone = date.clone();
  57. return clone.add(diff, 'day');
  58. },
  59. setYear: function setYear(date, year) {
  60. var clone = date.clone();
  61. return clone.year(year);
  62. },
  63. setMonth: function setMonth(date, month) {
  64. var clone = date.clone();
  65. return clone.month(month);
  66. },
  67. setDate: function setDate(date, num) {
  68. var clone = date.clone();
  69. return clone.date(num);
  70. },
  71. setHour: function setHour(date, hour) {
  72. var clone = date.clone();
  73. return clone.hour(hour);
  74. },
  75. setMinute: function setMinute(date, minute) {
  76. var clone = date.clone();
  77. return clone.minute(minute);
  78. },
  79. setSecond: function setSecond(date, second) {
  80. var clone = date.clone();
  81. return clone.second(second);
  82. },
  83. setMillisecond: function setMillisecond(date, millisecond) {
  84. var clone = date.clone();
  85. return clone.millisecond(millisecond);
  86. },
  87. // Compare
  88. isAfter: function isAfter(date1, date2) {
  89. return date1.isAfter(date2);
  90. },
  91. isValidate: function isValidate(date) {
  92. return date.isValid();
  93. },
  94. locale: {
  95. getWeekFirstDay: function getWeekFirstDay(locale) {
  96. var date = (0, _moment.default)().locale(locale);
  97. return date.localeData().firstDayOfWeek();
  98. },
  99. getWeekFirstDate: function getWeekFirstDate(locale, date) {
  100. var clone = date.clone();
  101. var result = clone.locale(locale);
  102. return result.weekday(0);
  103. },
  104. getWeek: function getWeek(locale, date) {
  105. var clone = date.clone();
  106. var result = clone.locale(locale);
  107. return result.week();
  108. },
  109. getShortWeekDays: function getShortWeekDays(locale) {
  110. var date = (0, _moment.default)().locale(locale);
  111. return date.localeData().weekdaysMin();
  112. },
  113. getShortMonths: function getShortMonths(locale) {
  114. var date = (0, _moment.default)().locale(locale);
  115. return date.localeData().monthsShort();
  116. },
  117. format: function format(locale, date, _format) {
  118. var clone = date.clone();
  119. var result = clone.locale(locale);
  120. return result.format(_format);
  121. },
  122. parse: function parse(locale, text, formats) {
  123. var fallbackFormatList = [];
  124. for (var i = 0; i < formats.length; i += 1) {
  125. var format = formats[i];
  126. var formatText = text;
  127. if (format.includes('wo') || format.includes('Wo')) {
  128. format = format.replace(/wo/g, 'w').replace(/Wo/g, 'W');
  129. var matchFormat = format.match(/[-YyMmDdHhSsWwGg]+/g);
  130. var matchText = formatText.match(/[-\d]+/g);
  131. if (matchFormat && matchText) {
  132. format = matchFormat.join('');
  133. formatText = matchText.join('');
  134. } else {
  135. fallbackFormatList.push(format.replace(/o/g, ''));
  136. }
  137. }
  138. var date = (0, _moment.default)(formatText, format, locale, true);
  139. if (date.isValid()) {
  140. return date;
  141. }
  142. }
  143. // Fallback to fuzzy matching, this should always not reach match or need fire a issue
  144. for (var _i = 0; _i < fallbackFormatList.length; _i += 1) {
  145. var _date = (0, _moment.default)(text, fallbackFormatList[_i], locale, false);
  146. /* istanbul ignore next */
  147. if (_date.isValid()) {
  148. (0, _warning.noteOnce)(false, 'Not match any format strictly and fallback to fuzzy match. Please help to fire a issue about this.');
  149. return _date;
  150. }
  151. }
  152. return null;
  153. }
  154. }
  155. };
  156. var _default = exports.default = generateConfig;