datepipeをアメリカのブラウザの場合はアメリカの形式(yyyy/MM/dd)で返し、ヨーロッパのブラウザの場合はdatepipeを返しますヨーロッパ形式(dd/MM/yyyy)?Angular 2 DatePipeのフォーマットはブラウザの位置/設定に基づいて
おかげ
datepipeをアメリカのブラウザの場合はアメリカの形式(yyyy/MM/dd)で返し、ヨーロッパのブラウザの場合はdatepipeを返しますヨーロッパ形式(dd/MM/yyyy)?Angular 2 DatePipeのフォーマットはブラウザの位置/設定に基づいて
おかげ
<div *ngif="Location() === 'Europe' "
{{valueDate | date: 'dd/MM/yyyy'}}
<div>
<div *ngif="Location() === 'Ammerica' "
{{valueDate | date: 'MM/dd/yyyy'}}
<div>
これは特にaotを使用すると難しい場合があります。通常は、異なるビルドを作成する必要があります。私はデータパイプを拡張し、ブラウザロケールを使用しました。
Datepipe:
@Pipe({name: 'datepipe', pure: true})
export class MyDatePipe extends DatePipe implements PipeTransform {
constructor(private win: WindowRef) {
super(win.ln);
}
transform(value: any, pattern?: string): string | null {
return super.transform(value, pattern);
}
}
ウィンドウ:
function _window(): any {
// return the global native browser window object
return window;
}
@Injectable()
export class WindowRef {
get nativeWindow(): any {
return _window();
}
public ln = 'en';
constructor() {
try {
if (!isNullOrUndefined(this.nativeWindow.navigator.language) && this.nativeWindow.navigator.language !== '') {
this.ln = this.nativeWindow.navigator.language;
}
}finally {}
}
}
あなたは場所を確認し、文 はい、あなたはこのようにパイプを使用することができる場合にそれを置くことができます:場所に
getCurrentLocation(lat,lng): Observable<any> {
return this._http.get("http://maps.googleapis.com/maps/api/geocode/json?latlng="+lat+","+lng+"&sensor=true")
.map(response => response.json())
.catch(error => {
console.log(error);
return Observable.throw(error.json());
});
}
あなたは私が場所を確認する方法を説明していただけますか?あなたはそれをするためにユーザーからの許可が必要ですか? –
私は上記のコードを編集し、コードを見て、私はそれが有用であることを願っています – ZAhmed
答えをありがとう、私はこれも実際に動作すると思います。しかし、Robin Dijkhofの答えは、ブラウザーの設定で言語を探しているので少し良くなっていると思います。それにもかかわらず、これは動作しますので、ありがとう! –
ごめんなさい、申し訳ありませんが、ウィンドウではどういう意味ですか?それはちょうどwindow.tsファイルですか?これをAngularプロジェクトにどのように実装すればよいですか? –
それは簡単なサービスです –
ああ、今、感謝を見る!素晴らしい答え –