moment.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _warning = require("../../vc-util/warning");
  8. var _moment = _interopRequireDefault(require("moment"));
  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. // set
  44. addYear: function addYear(date, diff) {
  45. var clone = date.clone();
  46. return clone.add(diff, 'year');
  47. },
  48. addMonth: function addMonth(date, diff) {
  49. var clone = date.clone();
  50. return clone.add(diff, 'month');
  51. },
  52. addDate: function addDate(date, diff) {
  53. var clone = date.clone();
  54. return clone.add(diff, 'day');
  55. },
  56. setYear: function setYear(date, year) {
  57. var clone = date.clone();
  58. return clone.year(year);
  59. },
  60. setMonth: function setMonth(date, month) {
  61. var clone = date.clone();
  62. return clone.month(month);
  63. },
  64. setDate: function setDate(date, num) {
  65. var clone = date.clone();
  66. return clone.date(num);
  67. },
  68. setHour: function setHour(date, hour) {
  69. var clone = date.clone();
  70. return clone.hour(hour);
  71. },
  72. setMinute: function setMinute(date, minute) {
  73. var clone = date.clone();
  74. return clone.minute(minute);
  75. },
  76. setSecond: function setSecond(date, second) {
  77. var clone = date.clone();
  78. return clone.second(second);
  79. },
  80. // Compare
  81. isAfter: function isAfter(date1, date2) {
  82. return date1.isAfter(date2);
  83. },
  84. isValidate: function isValidate(date) {
  85. return date.isValid();
  86. },
  87. locale: {
  88. getWeekFirstDay: function getWeekFirstDay(locale) {
  89. var date = (0, _moment.default)().locale(locale);
  90. return date.localeData().firstDayOfWeek();
  91. },
  92. getWeekFirstDate: function getWeekFirstDate(locale, date) {
  93. var clone = date.clone();
  94. var result = clone.locale(locale);
  95. return result.weekday(0);
  96. },
  97. getWeek: function getWeek(locale, date) {
  98. var clone = date.clone();
  99. var result = clone.locale(locale);
  100. return result.week();
  101. },
  102. getShortWeekDays: function getShortWeekDays(locale) {
  103. var date = (0, _moment.default)().locale(locale);
  104. return date.localeData().weekdaysMin();
  105. },
  106. getShortMonths: function getShortMonths(locale) {
  107. var date = (0, _moment.default)().locale(locale);
  108. return date.localeData().monthsShort();
  109. },
  110. format: function format(locale, date, _format) {
  111. var clone = date.clone();
  112. var result = clone.locale(locale);
  113. return result.format(_format);
  114. },
  115. parse: function parse(locale, text, formats) {
  116. var fallbackFormatList = [];
  117. for (var i = 0; i < formats.length; i += 1) {
  118. var format = formats[i];
  119. var formatText = text;
  120. if (format.includes('wo') || format.includes('Wo')) {
  121. format = format.replace(/wo/g, 'w').replace(/Wo/g, 'W');
  122. var matchFormat = format.match(/[-YyMmDdHhSsWwGg]+/g);
  123. var matchText = formatText.match(/[-\d]+/g);
  124. if (matchFormat && matchText) {
  125. format = matchFormat.join('');
  126. formatText = matchText.join('');
  127. } else {
  128. fallbackFormatList.push(format.replace(/o/g, ''));
  129. }
  130. }
  131. var date = (0, _moment.default)(formatText, format, locale, true);
  132. if (date.isValid()) {
  133. return date;
  134. }
  135. }
  136. // Fallback to fuzzy matching, this should always not reach match or need fire a issue
  137. for (var _i = 0; _i < fallbackFormatList.length; _i += 1) {
  138. var _date = (0, _moment.default)(text, fallbackFormatList[_i], locale, false);
  139. /* istanbul ignore next */
  140. if (_date.isValid()) {
  141. (0, _warning.noteOnce)(false, 'Not match any format strictly and fallback to fuzzy match. Please help to fire a issue about this.');
  142. return _date;
  143. }
  144. }
  145. return null;
  146. }
  147. },
  148. toDate: function toDate(value, valueFormat) {
  149. if (Array.isArray(value)) {
  150. return value.map(function (val) {
  151. return typeof val === 'string' && val ? (0, _moment.default)(val, valueFormat) : val || null;
  152. });
  153. } else {
  154. return typeof value === 'string' && value ? (0, _moment.default)(value, valueFormat) : value || null;
  155. }
  156. },
  157. toString: function toString(value, valueFormat) {
  158. if (Array.isArray(value)) {
  159. return value.map(function (val) {
  160. return _moment.default.isMoment(val) ? val.format(valueFormat) : val;
  161. });
  162. } else {
  163. return _moment.default.isMoment(value) ? value.format(valueFormat) : value;
  164. }
  165. }
  166. };
  167. var _default = generateConfig;
  168. exports.default = _default;