Utknąłem, próbując zrobić daty wymiany php api z kątowym frontendem.Jak obsługiwać datetime między php (Laravel api) i javascript (AngularJS)
Od PHP do JS wydaje się, że posortowane. Od laravel uchwyty dat przez Carbon Właśnie dodałem \Carbon\Carbon::setToStringFormat('c');
do app.php co sprawia, że terminy wyjdzie w normie ISO 8601.
przykład PHP:
2015-02-04T00: 53: 51 + 02: 00
Filtr daty AngularJS również wydaje się dobrze rozumieć ten format, a nawet poprawnie odczytuje okno czasowe.
To, co muszę jeszcze zrobić, to umieszczanie obiektów daty JS z powrotem w api PHP.
JS przykład:
2015-02-05T13: 00: 00.000Z
JavaScript format daty kończy się milisekund dodanych do łańcucha i w domyślnej konfiguracji Carbon narzeka spływu danych.
Również przeglądarki wydają się automatycznie tłumaczyć moje daty na czas UTC.
Ręczne używanie new Carbon('jsDateString')
wydaje się działać, ale po dokładniejszym sprawdzeniu dane strefy czasowej nie są uwzględniane.
Moje pytanie brzmi: jakie byłoby najlepsze i najbardziej automatyczne rozwiązanie do wysyłania dat z powrotem do Laravel php api z nakładki AngularJS?
Javascript nie ma natywnego wsparcia dla stref czasowych, co sprawia, że obsługa daty jest czasami bardzo denerwująca. Możesz rzucić okiem na http://momentjs.com/, która jest naprawdę dobrą biblioteką manipulacji czasem. Ten artykuł (https://nulogy.com/articles/dealing-with-timezones-in-javascript#.VNNrpjbN-fY) opisuje również problemy i sposoby ich naprawienia. Powodzenia! –
Ponieważ używam LVX frontend GUI framework, myślę, że momentJs jest już zaplątany.Strefa czasowa nie byłaby nawet ważna, jeśli podejrzewam, że przeglądarka nie dokonałaby automatycznie konwersji moich czasów na UTC. Dzięki za artykuł. Przejdę przez to i zgłoś się. – Priit
@JoelHinz dzięki za link. Ma bardzo dobre wytłumaczenie problemu i dobre uzasadnienie, jak go rozwiązać. Ale ponieważ w rzeczywistości nie interesuję się strefami czasowymi, ale jestem zmuszony radzić sobie z nimi tylko dlatego, że gdzieś po drodze wpisana w przeglądarce data kończy się w UTC, zajrzę do prostszego rozwiązania (datetime) .format(). – Priit