dateFns.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. "use strict";
  2. var _typeof = require("@babel/runtime/helpers/typeof");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _dateFns = require("date-fns");
  8. var Locale = _interopRequireWildcard(require("date-fns/locale"));
  9. function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
  10. function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
  11. var dealLocal = function dealLocal(str) {
  12. return str.replace(/_/g, '');
  13. };
  14. var localeParse = function localeParse(format) {
  15. return format.replace(/Y/g, 'y').replace(/D/g, 'd').replace(/gggg/, 'yyyy').replace(/g/g, 'G').replace(/([Ww])o/g, 'wo');
  16. };
  17. var generateConfig = {
  18. // get
  19. getNow: function getNow() {
  20. return new Date();
  21. },
  22. getFixedDate: function getFixedDate(string) {
  23. return new Date(string);
  24. },
  25. getEndDate: function getEndDate(date) {
  26. return (0, _dateFns.endOfMonth)(date);
  27. },
  28. getWeekDay: function getWeekDay(date) {
  29. return (0, _dateFns.getDay)(date);
  30. },
  31. getYear: function getYear(date) {
  32. return (0, _dateFns.getYear)(date);
  33. },
  34. getMonth: function getMonth(date) {
  35. return (0, _dateFns.getMonth)(date);
  36. },
  37. getDate: function getDate(date) {
  38. return (0, _dateFns.getDate)(date);
  39. },
  40. getHour: function getHour(date) {
  41. return (0, _dateFns.getHours)(date);
  42. },
  43. getMinute: function getMinute(date) {
  44. return (0, _dateFns.getMinutes)(date);
  45. },
  46. getSecond: function getSecond(date) {
  47. return (0, _dateFns.getSeconds)(date);
  48. },
  49. // set
  50. addYear: function addYear(date, diff) {
  51. return (0, _dateFns.addYears)(date, diff);
  52. },
  53. addMonth: function addMonth(date, diff) {
  54. return (0, _dateFns.addMonths)(date, diff);
  55. },
  56. addDate: function addDate(date, diff) {
  57. return (0, _dateFns.addDays)(date, diff);
  58. },
  59. setYear: function setYear(date, year) {
  60. return (0, _dateFns.setYear)(date, year);
  61. },
  62. setMonth: function setMonth(date, month) {
  63. return (0, _dateFns.setMonth)(date, month);
  64. },
  65. setDate: function setDate(date, num) {
  66. return (0, _dateFns.setDate)(date, num);
  67. },
  68. setHour: function setHour(date, hour) {
  69. return (0, _dateFns.setHours)(date, hour);
  70. },
  71. setMinute: function setMinute(date, minute) {
  72. return (0, _dateFns.setMinutes)(date, minute);
  73. },
  74. setSecond: function setSecond(date, second) {
  75. return (0, _dateFns.setSeconds)(date, second);
  76. },
  77. // Compare
  78. isAfter: function isAfter(date1, date2) {
  79. return (0, _dateFns.isAfter)(date1, date2);
  80. },
  81. isValidate: function isValidate(date) {
  82. return (0, _dateFns.isValid)(date);
  83. },
  84. locale: {
  85. getWeekFirstDay: function getWeekFirstDay(locale) {
  86. var clone = Locale[dealLocal(locale)];
  87. return clone.options.weekStartsOn;
  88. },
  89. getWeekFirstDate: function getWeekFirstDate(locale, date) {
  90. return (0, _dateFns.startOfWeek)(date, {
  91. locale: Locale[dealLocal(locale)]
  92. });
  93. },
  94. getWeek: function getWeek(locale, date) {
  95. return (0, _dateFns.getWeek)(date, {
  96. locale: Locale[dealLocal(locale)]
  97. });
  98. },
  99. getShortWeekDays: function getShortWeekDays(locale) {
  100. var clone = Locale[dealLocal(locale)];
  101. return Array.from({
  102. length: 7
  103. }).map(function (_, i) {
  104. return clone.localize.day(i, {
  105. width: 'short'
  106. });
  107. });
  108. },
  109. getShortMonths: function getShortMonths(locale) {
  110. var clone = Locale[dealLocal(locale)];
  111. return Array.from({
  112. length: 12
  113. }).map(function (_, i) {
  114. return clone.localize.month(i, {
  115. width: 'abbreviated'
  116. });
  117. });
  118. },
  119. format: function format(locale, date, _format) {
  120. if (!(0, _dateFns.isValid)(date)) {
  121. return null;
  122. }
  123. return (0, _dateFns.format)(date, localeParse(_format), {
  124. locale: Locale[dealLocal(locale)]
  125. });
  126. },
  127. parse: function parse(locale, text, formats) {
  128. for (var i = 0; i < formats.length; i += 1) {
  129. var format = localeParse(formats[i]);
  130. var formatText = text;
  131. var date = (0, _dateFns.parse)(formatText, format, new Date(), {
  132. locale: Locale[dealLocal(locale)]
  133. });
  134. if ((0, _dateFns.isValid)(date) && formatText.length === format.length && (0, _dateFns.isMatch)(formatText, format)) {
  135. return date;
  136. }
  137. }
  138. return null;
  139. }
  140. },
  141. toDate: function toDate(value, valueFormat) {
  142. if (Array.isArray(value)) {
  143. return value.map(function (val) {
  144. return typeof val === 'string' && val ? (0, _dateFns.parse)(val, valueFormat, new Date()) : val || null;
  145. });
  146. } else {
  147. return typeof value === 'string' && value ? (0, _dateFns.parse)(value, valueFormat, new Date()) : value || null;
  148. }
  149. },
  150. toString: function toString(value, valueFormat) {
  151. if (Array.isArray(value)) {
  152. return value.map(function (val) {
  153. return (0, _dateFns.isDate)(val) ? (0, _dateFns.format)(val, valueFormat) : val;
  154. });
  155. } else {
  156. return (0, _dateFns.isDate)(value) ? (0, _dateFns.format)(value, valueFormat) : value;
  157. }
  158. }
  159. };
  160. var _default = generateConfig;
  161. exports.default = _default;