Я с 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
, и сохранении левой части, проблема в том, что неизвестно, как придет дата
Очень хорошие, брось глаз в нее documentaciГіn чиновник Углового:
https://angular.io/api/common/DatePipe
В "Custom format options" показывает тебе, что cГіmo ты можешь настраивать формат даты. Но он кажется, который для тебя peticiГіn он делает конкретным, должен быть:
восходил:'dd-MM-yyyy'
Если я понял хорошо твою проблему, что 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');
}
}
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.
Ты 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>
Надеялся, что он подает тебя ;) Привет