1

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 Answers5

1

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

Mohamed EL-Gendy
  • 566
  • 4
  • 11
0

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;
Rahul Tripathi
  • 168,305
  • 31
  • 280
  • 331
0

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
Mister Jojo
  • 20,093
  • 6
  • 21
  • 40
0

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

-2

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()
Roko C. Buljan
  • 196,159
  • 39
  • 305
  • 313
Robert
  • 10,126
  • 19
  • 78
  • 130