Как получить название месяца из числа с помощью angular datepipe - PullRequest
0 голосов
/ 10 июля 2020

Я хочу отобразить раскрывающийся список, содержащий (локализованные) названия месяцев, используя angular datepipe.

<select>
    <option *ngFor="let month of months;" value="{{month}}">
         {{month | date: 'MMMM'}}
    </option>
</select>

months - это массив чисел от 0 до 11.

Сгенерированные параметры имеют правильные значения, но всегда 'Январь'

<select>
     <option value="0"></option>
     <option value="1"> January</option>
     <option value="2"> January</option>
     <option value="3"> January</option>
     <option value="4"> January</option>
     <option value="5"> January</option>
     <option value="6"> January</option>
     <option value="7"> January</option>
     <option value="8"> January</option>
     <option value="9"> January</option>
     <option value="10"> January</option>
     <option value="11"> January</option>
</select>

Что-то не так с моим кодом или вообще невозможно достичь того, что я хочу, используя angular финиковая трубка? Если да, то как я могу выполнить sh это?

Ответы [ 2 ]

3 голосов
/ 10 июля 2020

месяцев должны быть массивом Дат, вы можете использовать

months=[0,1,2,3,4,5,6,7,8,9,10,11].map(x=>new Date(2000,x,2))

И (видите, что я изменил [значение] на [значение] = "i")

<select>
    <option *ngFor="let month of months;let i=index" [value]="i">
         {{month | date: 'MMMM'}}
    </option>
</select>
1 голос
/ 10 июля 2020

Как вы можете прочитать из Angular документации , вход для канала даты является одним из следующих:

Выражение даты: объект Date, a число (миллисекунды с момента UT C эпохи) или строка ISO

Таким образом, ваш ввод 0-11 интерпретируется как миллисекунды после 01 января 1970 года. Таким образом, все они относятся к январю. Вероятно, вам следует создать массив объектов Date для использования в качестве months [].

...