Труба из html в component.ts

Я с Angular 6 , я получаю с сервера JSON , чья дата: "loadDate": "2017-02-12T00:00:00+01:00",

Во время отображения этой даты в HTML, который я имею :

<td class="left">{{ scenario.loadDate | date:'shortDate':'':'es' }}</td>

Этот канал возвращает дату 12/2/17.

Когда я изменяю другие данные объекта и снова отправляю этот объект, то отправляется дата с большой кистью:

"2017-02-12T00:00:00+01:00"

То, что я хочу отправить, это 12/2/17, что покажите в HTML или дайте мне свой собственный формат 2017-02-12, я думал об обрезании цепочки, полученной в T, и сохранении левой части, проблема в том, что неизвестно, как придет дата

1
задан 29.11.2019, 17:17
4 ответа

Очень хорошие, брось глаз в нее documentaciГіn чиновник Углового:

https://angular.io/api/common/DatePipe

В "Custom format options" показывает тебе, что cГіmo ты можешь настраивать формат даты. Но он кажется, который для тебя peticiГіn он делает конкретным, должен быть:

восходил:'dd-MM-yyyy'

1
ответ дан 01.12.2019, 10:38
  • 1
    Привет, я приглашаю тебя прочитать CГіmo отвечать . Хотя ссылка может помогать решать проблему, часто они прекращают быть доступным. Я предлагаю тебе доказывать твой ответ для того, чтобы она считалась как vá lida, иначе возможно проголосовали за негатив или были удалены. Привет – Mauricio Contreras 29.11.2019, 16:12

Если я понял хорошо твою проблему, что gustarГ - в es иметь дата уже в правильном формате в компоненте, как он появляется, когда ты используешь pipe .

В этом случае она soluciГіn простой: используй она funciГіn, который использует DatePipe внутри в компоненте:

import { formatDate } from '@angular/common';

class MiComponente {


  ...
  metodoDondeObtengoLaFecha() {
    ...
    let fechaFormateada= formatDate(this.scenario.loadDate, 'dd-MM-YYYY','es-ES');
  }
}
1
ответ дан 01.12.2019, 10:38

HolaEdu, ты можешь делать твой собственный персонализированный pipe и asГ - мочь возвращать дату зависит, как он мстит, ты помещаешь совсем случаи в твой персонализированный pipe, в этом случае recibirГЎs всегда дата в string и уже внутри персонализированного pipe ты можешь работать с этой датой даты различных способов lГіgica внутри pipe asГ - сам pipe уже retornarГ - в с датой, которая ты хочешь работать, хорошо в мою точку зрения я это harГ - в с персонализированным pipe для того, чтобы он оказался более чистым cГіdigo и просвет использовать персонализированные pipes :)

Здесь оставил тебе пример для того, чтобы ты понял меня.

> PIPE:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'letras'
})
export class LetrasPipe implements PipeTransform {

  transform(value: any, args?: any): any {
    if (args != null) {
      if (args=='ingles')
        switch (value) {
          case 1: return 'one';
          case 2: return 'two';
          case 3: return 'three';
          case 4: return 'four';
          case 5: return 'five';
          case 6: return 'six';
          case 7: return 'seven';                        
        }
        if (args=='portugues')
        switch (value) {
          case 1: return 'um';
          case 2: return 'dois';
          case 3: return 'três';
          case 4: return 'quatro';
          case 5: return 'cinco';
          case 6: return 'seis';
          case 7: return 'sete';                        
        }        
    }
    switch (value) {
      case 1: return 'uno';
      case 2: return 'dos';
      case 3: return 'tres';
      case 4: return 'cuatro';
      case 5: return 'cinco';
      case 6: return 'seis';
      case 7: return 'siete';                        
    }  
    return null;
  }

}
> HTML:

<h1>Números en castellano</h1>
<ul>
  <li *ngFor="let valor of vector">
    {{valor | letras}}
  </li>
</ul>
<h1>Números en inglés</h1>
<ul>
  <li *ngFor="let valor of vector">
    {{valor | letras:'ingles'}}
  </li>
</ul>
<h1>Números en portugués</h1>
<ul>
  <li *ngFor="let valor of vector">
    {{valor | letras:'portugues'}}
  </li>
</ul>

В этом примере, который упомянул о тебе, я верю в персонализированный pipe, что evalГєa завися аргумент, который проходит с pipe, как ты можешь видеть, проходит посредством букв:'portugues'.

В pipe получает сначала тело того, что ты будешь работать в этом случае, она была бы стоимостью despuГ©s приходит аргумент, который ты хочешь показать или работать, что он был бы portuguГ©s, espaГ±ol, кастилец.

Персонализированный pipe работает эта lГіgica, как возможно оценивать с переключателем рутины, и я думаю, что ты можешь понимать эту lГіgica, что он очень fГЎcil.

0
ответ дан 01.12.2019, 10:38

Ты pondrГ© пример как производить ты pipe для формата даты, в которой ты нуждаешься:

Прежде всего выполняет следующего cГіdigo в консоли, где ты видишь MiFechaFormat, ты мог бы помещать маршрут также misPipes/MiFechaFormat:

ng g pipe MiFechaFormat

Очевидно ты можешь помещать ему имя, которое ты хочешь:

Однако открывает файл, что generГі pipe, aquГ - ты покажет пример, который я сделал для pipe твоей даты, но ты поместил бы cГіdigo, в котором ты нуждаешься, чтобы форматировать ту же самую:

@Pipe({
  name: 'miFechaFormat'
})
export class MiFechaFormatPipe implements PipeTransform {
  transform(fecha: any, args?: any): any {
    // Aqui podrias poner el código que necesitas para formatear tu fecha
    return fecha.split('T')[0]; // Aqui se retorna la fecha formateada
  }
}

И в тебе HTML он должен бы быть:

<td>{{fecha | miFechaFormat}}</td>

Даже ты мог бы посылать тип, если бы ты нуждался в нескольких типах формата, например:

@Pipe({
  name: 'miFechaFormat'
})
export class MiFechaFormatPipe implements PipeTransform {
  transform(fecha: any, args?: any): any {
    // Aqui podrias poner el código que necesitas para formatear tu fecha

    console.log(args); // Por el momento solo muestro lo que se puso como argumento en el HTML, tu ya le darías el uso

    return fecha.split('T')[0];
  }
}

И в HTML ты бы это использовал следующей формы:

<td>{{fecha | miFechaFormat: 'YYYYMMDD'}}</td>

Надеялся, что он подает тебя ;) Привет

0
ответ дан 01.12.2019, 10:38