Я искал, как вернуть номер недели в Angular 2. Я не нашел ответа на этот вопрос. Я нашел на , что в Угловом 1 это было бы примерно так: {{today | date:'w'}}
, но это не работает в Angular 2. Я знаю, что могу написать функцию, чтобы позаботиться об этом, но это не кажется практичным. Я что-то пропустил в документации об Angular 2 или это еще не реализовано?угловая 2 date pipe weeknumber
2
A
ответ
1
DatePipe в настоящее время не поддерживает weekOfYear
.
Вы можете реализовать свою собственную линию WeekOfYear
.
Для получения более подробной информации см. https://angular.io/docs/ts/latest/guide/pipes.html.
4
Как предлагает Гюнтер, написать свое собственное довольно просто.
Создать новый файл машинопись, week.pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'week' })
export class WeekPipe implements PipeTransform {
transform(value: Date): number {
return this.getWeekNumber(value);
}
// source: http://stackoverflow.com/questions/6117814/get-week-of-year-in-javascript-like-in-php
private getWeekNumber(d: Date): number {
// Copy date so don't modify original
d = new Date(+d);
d.setHours(0, 0, 0);
// Set to nearest Thursday: current date + 4 - current day number
// Make Sunday's day number 7
d.setDate(d.getDate() + 4 - (d.getDay() || 7));
// Get first day of year
var yearStart = new Date(d.getFullYear(), 0, 1);
// Calculate full weeks to nearest Thursday
var weekNo = Math.ceil((((d.valueOf() - yearStart.valueOf())/86400000) + 1)/7);
// Return array of year and week number
return weekNo;
}
}
Если вы используете тот момент, когда код еще проще
import { Pipe, PipeTransform } from '@angular/core';
import * as moment from 'moment';
@Pipe({ name: 'week' })
export class WeekPipe implements PipeTransform {
transform(value: Date): number {
return moment(d).week();
}
}
включают трубу в вашем app.module
import { NgModule } from '@angular/core';
import { WeekPipe } from './pipes/week.pipe';
@NgModule({
imports: [
// your imports
],
declarations: [
AppComponent,
WeekPipe // including the pipe in declarations
],
bootstrap: [AppComponent]
})
export class AppModule { }
И тогда вы можете использовать его в своем HTML как обычно
<div class="week-number">
{{ yourDate | week }}
</div>
, где yourDate является public yourDate: Date = new Date();
в вашем компоненте.
0
У меня нет репутации комментировать на примере Патрика, но я хочу сказать, что есть опечатка:
import { Pipe, PipeTransform } from '@angular/core';
import * as moment from 'moment';
@Pipe({ name: 'week' })
export class WeekPipe implements PipeTransform {
transform(value: Date): number {
return moment(value).week();
}
}
Отметьте параметр «значение», который передается на «момент()» ,
Смежные вопросы
- 1. Ionic 2 Date Pipe добавляет час
- 2. Использование date pipe в условном выражении - Angular 2
- 3. Угловая 2 Труба фильтра
- 4. WeekNumber в WinRT
- 5. Угловая 2 Пользовательская труба
- 6. Угловая 2 "время назад" труба
- 7. Угловое 2 Валюта Pipe
- 8. Угловая ui-date внутри модального
- 9. Трубы угловая 2 JSON
- 10. Угловая 2 как заставить locale
- 11. Weeknumber дата печати
- 12. Weeknumber предыдущего года
- 13. угловая 2 дата трубы добавить или подчас
- 14. Угловая 2 - Труба не найдена
- 15. Global pipe in Angular 2
- 16. Dynamic pipe in Angular 2
- 17. Angular 2 Custom Pipe Пояснение
- 18. Дата диапазон от weeknumber + год
- 19. Угловая 2 - bypasscecurity
- 20. Entity Framework get by weeknumber query
- 21. PHP Weeknumber, дата начала и дата окончания
- 22. JQuery datepicker return weeknumber и день недели
- 23. Получить список даты из weeknumber C#
- 24. Угловая 2 компонента внутри Угловая 1?
- 25. Угловая форма продолжает возвращать false (Угловая 2)
- 26. Угловая 2 Goldp Компиляция машинописных файлов
- 27. Угловая 2 - Не загружается (без ошибок)
- 28. MySQL Рассчитать 2 date
- 29. Угловая 2 динамическая маршрутизация
- 30. Meteorjs + Угловая 2
является 'сегодня'' 'Date' или' string'? AFAIK в настоящее время он должен быть 'Date' для работы' date' для работы. –
Сегодня это просто переменная, которую я создал, чтобы облегчить жизнь. как в: var today = new Date(); – JanVanHaudt