#javascript #angular #typescript
#javascript #угловой #машинопись
Вопрос:
Я использую angular и rxjs.
Итак, у меня есть это:
x: console.log(res.map(date => date.dt))
И он возвращает это:
0: "2021-01-19T12:50:00Z"
1: "2021-01-19T12:51:00Z"
2: "2021-01-19T12:52:00Z"
3: "2021-01-19T12:53:00Z"
4: "2021-01-19T12:54:00Z"
5: "2021-01-19T12:55:00Z"
6: "2021-01-19T12:56:00Z"
7: "2021-01-19T12:57:00Z"
8: "2021-01-19T12:59:00Z"
Но, конечно, это не читается.
ПОЭТОМУ я хочу преобразовать его, например, так: «2021-01-19 12:50:00»,
Итак: гггг-ММ-дд ЧЧ-ММ-СС
Но так что я должен изменить?
Спасибо
Ответ №1:
Возможно, вы могли бы сделать что-то вроде этого:
// this is taking a date string, if you are passing the date obj directly then no need to pass it to `new Date()`
function cleanTheDate(dateStr) {
return new Date(dateStr).toISOString().
replace(/T/, ' ').
replace(/.. /, '')
}
Комментарии:
1. ах, оке, значит, все еще регулярное выражение. Оке, спасибо.
2. Я имею в виду, что вы могли бы сделать это без регулярных выражений, но я считаю, что это чище, чем без регулярных выражений. Или вы могли бы использовать некоторые сторонние модули, но это не обязательно для таких простых задач.
Ответ №2:
Я думаю, вам нужно написать свою собственную функцию форматирования даты. Что-то вроде:
const formatDate = (inputDate) => {
return `${inputDate.getFullYear()}-${addLeadingZero(inputDate.getMonth() 1)}-${addLeadingZero(inputDate.getDate())} ${addLeadingZero(inputDate.getHours())}:${addLeadingZero(inputDate.getMinutes())}:${addLeadingZero(inputDate.getSeconds())}`;
}
const addLeadingZero = (input) => {
return input < 10 ? `0${input}` : input;
}
console.log(formatDate(new Date()));
Ответ №3:
ANGULAR ИМЕЕТ СВОЙ СОБСТВЕННЫЙ КАНАЛ ДАТЫ ДЛЯ HTML И ФУНКЦИЮ formatDate () ДЛЯ TS-ФАЙЛА
Привет, как я упоминал выше, вы можете использовать встроенные каналы Angular
Канал даты: https://angular.io/api/common/DatePipe
Функция formatDate(): https://angular.io/api/common/formatDate
// If you want to format the date in the HTML template
// Syntax
{{ value_expression | date [ : format [ : timezone [ : locale ] ] ] }}
// Example
<p>
<strong>
Birthday in format dd/MM/yyyy :
</strong>
{{ birthday | date:'dd/MM/yyyy' }}
</p>
-------------------------------------------------------------
// If you want to format the date in the component.ts file
// Syntax
formatDate(value: string | number | Date, format: string, locale: string, timezone?: string): string
// Example
import { formatDate } from '@angular/common';
const format = 'dd/MM/yyyy';
const myDate = '2021-01-20';
const locale = 'en-US';
const formattedDate = formatDate(myDate, format, locale);