Javascript формат даты не работает правильно - PullRequest
0 голосов
/ 06 ноября 2018

Я изменил код. У меня есть эта функция:

    function Date(stringDate){
        var date=moment(stringDate).locale('es').format('DD MMM');
        if(date=="Invalid Date"){
            return '-';
        } else {
            return date;
        }
    
    }

Он по-прежнему возвращает дату на английском языке.

1 Ответ

0 голосов
/ 06 ноября 2018

Обратите внимание на предостережения в комментариях о том, что это неправильная версия для испанского языка.

Но если вы все еще хотите это сделать, использование замены регулярного выражения для результата выше, вероятно, является самым простым. Это немного другая формулировка вашей версии, с добавленным вызовом замены. Это также позволяет вам указать дату, по умолчанию на сегодня, если она не указана:

let formatDate = (date = new Date()) => date == "Invalid Date" 
  ? '-' 
  : date.toLocaleDateString('es-ES', {day: 'numeric', month: 'short'})
    .replace(/\b([a-z])/, (s, w) => w.toUpperCase())
    
console.log(formatDate())
console.log(formatDate(new Date(1776, 7, 4)))
console.log(formatDate(new Date(1862, 4, 5)))
console.log(formatDate(new Date('foo-bar-baz')))
...