2013-06-08 13 views
17

Używam pola wprowadzania daty i formatowania wybranej daty w moim ui za pomocą Angular. Ale sformatowana data jest zawsze o 1 dzień krótsza niż wybrana data. Dlaczego tak jest i jak mogę to naprawić?Dlaczego filtr daty Angular wyświetla niewłaściwą datę?

HTML:

<div ng-app="miniapp"> 
    <div> 
    <label class="control-label" for="inputStart">Start Date:</label> 
     <input type="date" id="inputStart" data-ng-model="startDate" /><br /> 
     Selected: <span>{{ startDate }}</span><br /> 
     fullDate: <span>{{ startDate | date:'fullDate' }}</span><br /> 
     mediumDate: <span>{{ startDate | date:'mediumDate' }}</span><br /> 
     MMMM d yyyy<span>{{ startDate | date:'MMMM d yyyy' }}</span> 
    </div>  
</div> 

JS:

var app = angular.module('miniapp', []); 

Mam skrzypce który demonstruje problem: http://jsfiddle.net/wittersworld/uY3s9/

EDIT: zaktualizowałem skrzypce z roztworu roboczego: http://jsfiddle.net/wittersworld/uY3s9/2/

+0

W swoich skrzypcach daty wyglądają dobrze. – Stewie

+1

@Stewie to dlatego, że Sarajewo to GMT + 1. Jeśli spróbujesz skrzypce OP o godzinie 0:05 czasu GMT 23:05 poprzedniego dnia, będzie wyglądało, że skrzypce pokazuje się dzień później niż wszedłeś. –

Odpowiedz

15

To jest problem strefy czasowej.

Jeśli wprowadzisz datę, powiedzmy, 8 czerwca 2013 r. Do selektora daty, to północ GMT. Jeśli mieszkasz na zachód od Anglii, powiedzmy, w Stanach Zjednoczonych, to 7 czerwca 2013 r

zmienić linię

{{ startDate | date:'fullDate' }} 

do

{{ startDate | date:'medium' }} 

aby zobaczyć czas!

+1

Dzięki Ray! To doprowadziło mnie do właściwego rozwiązania. Znalazłem artykuł, który pomógł mi przez resztę drogi i zaktualizował skrzypce za pomocą działającej metody. http://www.techrepublic.com/article/convert-the-local-time-to-another-time-zone-with-this-javascript/6016329 – witters

+0

+1 Za poświęcenie czasu na wyjaśnienie, dlaczego to działa dla mnie. – Stewie

+2

Link roboczy: http://www.techrepublic.com/article/convert-the-local-time-to-another-time-zone-with-this-javascript/ – jeffgabhart

Powiązane problemy