简体   繁体   中英

Is there a way to reverse a format in date-fns?

I am from Thailand, and wondering is there a way to reverse a format in date-fns?

For example, this function will turn "2022-09-24" to "saturday-24-september-2564"

This there a good method using date-fns to create a new function that will turn "saturday-9-september-2564" back to "2022-09-24"?

Thank you so much in advance

//----------------

import format from "date-fns/format";
import th from "date-fns/locale/th";
import addYears from "date-fns/addYears";

const transformDate = (d) => {
        const newDate = new Date(d);
        const year_ymd = addYears(newDate, 543);

        const urlText =
          format(newDate, "EEEE'-'d'-'MMMM") + format(year_ymd, "'-'yyyy");

        return urlText.toLowerCase();
      };

transformDate(2022-09-24);

Just the other way around it would be something like this if I'm not mistaken:

import {format, addYears, parse} from "date-fns";
import {th} from "date-fns/locale/th";

const transformDate = (d) => {
        const newDate = new Date(d);
        const year_ymd = addYears(newDate, 543);

        const urlText =
          format(newDate, "EEEE'-'d'-'MMMM") + format(year_ymd, "'-'yyyy");

        console.log(urlText.toLowerCase());
      };

transformDate('2022-09-24');

const transformDate2 = (d) => {
  const parsed = parse(d, "EEEE'-'d'-'MMMM'-'yyyy", new Date(), { locale: th })
  const formatted = format(parsed, 'dd-MM-yyyy');
  console.log(formatted)
}

transformDate2('saturday-24-september-2565')

Also, 4th param in the parse method contains optional properties that could be passed. In case you need anything more feel free to refference this picture:

在此处输入图像描述

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM