localeDate.ts 794 B

12345678910111213141516171819202122232425262728
  1. import { format as dateFnsFormat, parse as dateFnsParse } from 'date-fns';
  2. const replace = function replace(str, replacements) {
  3. let _str = str;
  4. for (const key of Object.keys(replacements)) {
  5. if (typeof replacements[key] === 'string') {
  6. _str = _str.replace(key, replacements[key]);
  7. }
  8. }
  9. return _str;
  10. };
  11. export function localeFormat(date, format, locale = {}, options = {}) {
  12. let str = dateFnsFormat(date, format, options);
  13. str = replace(str, locale);
  14. return str;
  15. }
  16. export function localeParse(dateString, format, locale = {}, defaultDate = null, options = {}) {
  17. // const invertedLocale = invert(locale);
  18. const _dateString = replace(dateString, locale);
  19. return dateFnsParse(_dateString, format, defaultDate, options);
  20. }