Mam uniksowy znacznik czasu i próbuję przekształcić go w datę kalendarzową, taką jak MM/DD/YYYY
. Jak dotąd mam to:
$(document).ready(function() {
var value = $("#unixtime").val(); //this retrieves the unix timestamp
var dateString = moment(value).calendar();
alert(dateString);
});
Kiedy próbuję wydrukować datę z kalendarza, w oknie pojawia się komunikat „Nieprawidłowa data”. Czy ktoś może mi pomóc?
javascript
datetime
momentjs
Andrzej
źródło
źródło
calendar
Funkcja jest ładne ( docs tutaj ), ale nie w formacie PO prosił.monent(number)
przewiduje znacznik czasu Unix milisekund sekund (który jest zgodny zDate
obiektem), podczas gdy znacznik czasu UNIX w sekundach domyślnie. Więc możesz też zrobićmoment(value*1000)
zamiastmoment.unix(value)
, ale użycieunix
jest jaśniejsze.Znacznik czasu UNIX to liczba sekund od 1970 roku, więc musisz przekonwertować go na obiekt JS Date:
źródło
Moment.js udostępnia zlokalizowane formaty, których można używać.
Oto przykład:
źródło
źródło
Tylko to,
źródło
Może się trochę spóźnić, ale w przypadku nowych problemów, takich jak ten, używam tego kodu:
Możesz zmienić format, aby dopasować go do swoich potrzeb, a także dodać strefę czasową w następujący sposób:
źródło
x
dla sygnatury czasowej ms unix. Dokumentacja tutajNaprawiłem to w ten sposób.
źródło
Istnieje tryb ścisły i tryb przebaczenia .
Chociaż tryb ścisły działa lepiej w większości sytuacji, tryb wybaczania może być bardzo przydatny, gdy format ciągu przekazywanego do chwili może się różnić.
W późniejszej wersji parser będzie domyślnie używać trybu ścisłego. Tryb ścisły wymaga, aby dane wejściowe do momentu dokładnie pasowały do określonego formatu, w tym separatorów. Tryb ścisły jest ustawiany przez przekazanie true jako trzeciego parametru do funkcji momentowej.
Typowy scenariusz, w którym tryb wybaczania jest przydatny, występuje w sytuacjach, gdy interfejs API innej firmy podaje datę, a format daty dla tego interfejsu API może się zmienić. Załóżmy, że interfejs API zaczyna się od wysłania dat w formacie „RRRR-MM-DD”, a później zmienia się na format „MM / DD / RRRR”.
W trybie ścisłym następujący kod powoduje wyświetlenie „Nieprawidłowa data”:
W trybie wybaczania przy użyciu ciągu formatu otrzymujesz niewłaściwą datę:
byłby inny sposób
źródło
Ta funkcja tworzy datę na podstawie znacznika czasu:
źródło
źródło
źródło