2017-02-10 21 views
0

angle2でDatePipeを使用しているときに、私のように見えます。何らかの理由で、日付'03// 1992' を実行した後にDatePipeを通じて、それは'03// 1992' に変更された:DatePipeで日付が正しく変更されない

http://plnkr.co/edit/SK6Z9q8h7EqunmkqVtpt

(更新されたコード:バグ修正)

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> Invalid Date: {{ somedate | date:'MM/dd/yyyy' }}</div> 
    <div> DateObject: {{ dateType }}</div> 
    <div> DateObject With Pipe: {{ dateType | date:'MM/dd/yyyy' }}</div> 
    <br> 
    <div> Other Valid Dates </div> 
    <div>{{ afterdate | date:'MM/dd/yyyy' }}</div> 
    <div>{{ dateTypeAfter }}</div> 

    <div>{{ beforedate | date:'MM/dd/yyyy' }}</div> 
    <div>{{ dateTypeBefore }}</div> 
    `, 
}) 
export class App { 
    somedate:string; 
    afterdate: string; 
    beforedate: string; 
    dateType: Date; 
    dateTypeAfter: Date; 
    dateTypeBefore: Date; 

    constructor() { 
    this.somedate = '03/09/1992'; 
    this.afterdate = '03/09/1993'; 
    this.beforedate = '03/09/1991'; 
    this.dateType = new Date(this.somedate); 
    this.dateTypeAfter = new Date(this.afterdate); 
    this.dateTypeBefore = new Date(this.beforedate); 
    } 
} 

これは、上記のように1991年または1993年には発生しません。結果:

Invalid Date: 03/08/1992 
DateObject: Mon Mar 09 1992 00:00:00 GMT-0400 (Eastern Daylight Time) 
DateObject With Pipe: 03/08/1992 

Other Valid Dates 
03/09/1993 
Tue Mar 09 1993 00:00:00 GMT-0500 (Eastern Standard Time) 
03/09/1991 
Sat Mar 09 1991 00:00:00 GMT-0500 (Eastern Standard Time) 

これはどうして起こっているのですか?あるいは私は何かを誤解していますか?

+0

Plunkerは私にとって正しい日付を示しています:D – Alex

+0

それを見ると、最初の行が "Invalid Date:03/09/1992"と表示されますか? – lupus137

+0

はい、正確にはhttp://imgur.com/Dn2y3lK私は角度のDatepipeは少しバグ(まだですか?)それは少なくともある時点であったと思う。しばらくのうちにそれを使用する必要はありませんでした:) – Alex

答えて

0

問題は実際に夏時間帯です。

Mon Mar 09 1992 00:00:00 GMT-0400 (Eastern Daylight Time) 
Tue Mar 09 1993 00:00:00 GMT-0500 (Eastern Standard Time) 
Sat Mar 09 1991 00:00:00 GMT-0500 (Eastern Standard Time) 

GMTのオフセットが異なることに注意してください。パイプが注意を払うように見えます。これにより、03/09/1992の日付は実際に03/08/1992 23:00:00 PMに変換されます。

1つの可能なアプローチは、今、それは私にも適用される(ただし、それ自身の問題を抱えている)UTCを使用することです:

​​

上記オフセット時間は5で、タイムゾーン間で標準化されていることを確認します。

関連する問題