2014-07-16 6 views
34

Przeszedłem przez dokumentację i jestem trochę zmieszany, jak postępować. Istnieją podobne pytania, ale nikt nie mówi o analizie dat otrzymanych w formatach i zamianie między datami lokalnymi i utc.Moment JS - parsuj UTC i konwertuj na lokalny i na odwrót.

  1. otrzymam lokalnego datetime, lokalne formacie datetime i muszą generować UTC datetime z niej w określonym formacie i jest to, jak myślę, że powinienem to zrobić. moment(dateTime,localDateTimeFormat).utc().format(specifiedFormat);

  2. Otrzymuję datetime w określonym formacie i muszę wygenerować określoną czasowo lokalizację w określonym formacie. Jak mam to zrobić? moment.utc(utcDateTime, utcDateTimeFormat).toDate(); podaje mi datę javascript wierzę. Jak to sformatować? Czy muszę utworzyć nowy moment za pomocą wygenerowanego obiektu Date?

Inną rzeczą, którą mogę zrobić, to uzyskać strefę czasową, a następnie formatowanie. Zastanawiam się, czy wybieram tu niewłaściwą trasę. Proszę pomóż.

+0

Spójrz na inne tak stanowisk włącznie http://stackoverflow.com/questions/15133326/moment-js-utc-does-not-work-as-i-expect-it – Upperstage

+0

I nie chodzą WIĘC, ale nie mógł znaleźć dokładnych odpowiedzi na temat parsowania dat utc. Zdobycie tej chwili było w porządku, ale to, co mnie zmusiło do analizy i konwersji z powrotem na lokalny. W każdym razie dzięki. – Chiranjib

+7

To pytanie nie powinno być oznaczone jako duplikat. Inne pytanie może być podobne, ale różni się tym, ponieważ obejmuje przekazywanie poszczególnych części daty, a nie parsowanie z ciągu znaków w formacie. –

Odpowiedz

68
  • W pozycji 1 - Tak, to jeden sposób, aby to zrobić. Jeśli jednak formatem wyjściowym będzie właśnie znacznik czasu UTC ISO8601, można zadzwonić pod numer toISOString bezpośrednio w pierwotnym momencie. Ponieważ UTC jest implikowane przez dane wyjściowe, zbędne byłoby ponowne wywołanie utc().

  • W pozycji 2 - Podobnie jak funkcja utc(), dostępna jest również funkcja local(). Po utworzeniu obiektu moment można użyć funkcji toDate lub dowolnej innej funkcji opisanej w dokumentacji. Nie, nie musisz tworzyć nowego momentu przy użyciu wygenerowanego obiektu daty.

    moment.utc(utcDateTime, utcDateTimeFormat).local().format(specifiedFormat) 
    

    Ponownie, istnieje więcej niż jeden sposób robienia rzeczy tutaj. Jeśli utcDateTime jest już w formacie ISO8601 i zawiera albo Z lub offset jak -01:00, to będą brane pod uwagę, a może po prostu to zrobić:

    moment(utcDateTime).format(specifiedFormat) 
    
  • Na ostatniej pozycji pan wspomniał o czasie strefy, trudno powiedzieć, o co prosisz. W nowym pytaniu powinieneś rozwinąć określone szczegóły:.

+0

Tak, ta metoda lokalna() jest tym, co myślę, że mogę używać, a następnie modyfikować wokół rzeczy. Dzięki. – Chiranjib

+1

utcDateTimeFormat? – shinzou

+0

@kuhaku - był z PO. W szczególności ciąg formatu w drugim parametrze powinien być zgodny z danymi podanymi w pierwszym parametrze. –

Powiązane problemy