toLocaleDateString конвертировать из Италии в английский - PullRequest
1 голос
/ 28 февраля 2020

как я могу преобразовать эту итальянскую дату

Agosto 6, 2020

в эту

August 6, 2020

с javascript?

Если я сделаю

var date = new Date('August 6, 2020'); //output Thu Aug 06 2020 00:00:00 GMT+0200

но если я попробую на итальянском

var date = new Date('Agosto 6, 2020'); //output is invalid date

большое спасибо

1 Ответ

0 голосов
/ 28 февраля 2020

Вы можете создать свой собственный переводчик месяца

как этот

const translateITmonth = (function(){
  let topDate = new Date(2000, 0, 1);

  const months_translate = [ ] 

  for(let m=0;m<12;m++) {
    topDate.setMonth(m)
    months_translate[m] = { Italiano: new RegExp(topDate.toLocaleString('it-IT',{month:'long'}),'i'), English : topDate.toLocaleString('en-EN',{month:'long'}) }
  }

  function It_translate(dateIT) {
    for (let m of months_translate )
      { if ( m.Italiano.test(dateIT))  return dateIT.replace( m.Italiano, m.English ) }
    return dateIT
  }

  return It_translate
})();



// usage:

let str1 = 'Agosto 6, 2020'

console.log( translateITmonth(str1) )

// or 

var myDate = new Date(translateITmonth('Agosto 6, 2020') )

console.log( translateITmonth( myDate ) )
...