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);
CodePudding user response:
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: