regex convert text to date

161 Views Asked by At

I'm using parsehub to extract data. There is a date in the format thursday 22 december 2022
but I need it in a date string dd/mm/yyyy. Is there a way to do that with regex javascript?

I can't find info about a way to solve this.

5

There are 5 best solutions below

0
Rahul Tripathi On

You can do it without regex as well

function myDateFormat(date) {
    var d = new Date(date),
        month = '' + (d.getMonth() + 1),
        day = '' + d.getDate(),
        year = d.getFullYear();

    return [day, month, year].join('/');
}
 
console.log(myDateFormat('Thursday 22 december 2022'));

The above will not add '0' to the month and date so you need to add a condition to get the date and month as 'dd' and 'mm' instead of d and m.

if (month.length < 2) 
    month = '0' + month;
if (day.length < 2) 
    day = '0' + day;
4
Mohamed EL-Gendy On

You could solve it without regex using only JavaScript

1: Parse your string into a date

2: Extract and concatenate needed values using JS built-in date methods

function formatDate(date) {
    function checkZero(num){return (num < 10)? '0'+num : num}

    let parsed = new Date(date);
    return `${checkZero(parsed.getDate())}/${checkZero(parsed.getMonth() + 1)}/${parsed.getFullYear()}`;
}
console.log('Case1: '+formatDate('Thursday 22 december 2022'));
console.log('Case2: '+formatDate('Monday 4 July 2022'));

Or simply, you can use this line of code

let foratedDate = new Date('Thursday 22 december 2022').toLocaleDateString('FR-fr');

Note: The 2 solutions return the same result but, the first one has more flexibility in formatting to many other shapes

0
Mister Jojo On

Simply :
please note the addition of zeros on months, days when these are less than 10

const strDate2dmy = dteStr => new Date(dteStr).toLocaleDateString('fr-FR');
 

console.log( strDate2dmy( 'Thursday 22 december 2022' ) )  // 22/12/2022
console.log( strDate2dmy( 'Monday 4 July 2022' ) )         // 04/07/2022

3
Robert On

One hacky way is:

new Date('thursday 22 december 2022').toJSON().slice(0, 10).split('-').reverse().join('/');

Result: "22/12/2022"

Or perhaps try this:

new Date('thursday 22 december 2022').toLocaleDateString()
0
Danny Geurts On

Thanks for the answers but that doesn't work with parsehub.

a alternative is to do it with PHP code. Found a option in one of the plugins to work with custom php to change value of data.

https://www.wpallimport.com/documentation/inline-php/

any suggestions