W MongoDB funkcja Date()
metoda zwraca datę jako ciąg znaków lub jako obiekt Date.
- Kiedy nazywasz to jako
Date()
, zwraca bieżącą datę jako ciąg znaków wmongo
powłoka. - Kiedy nazywasz to jako
new Date()
, zwraca bieżącą datę jako obiekt Date.
Możesz również podać konkretną datę jako argument do new Date()
, aby używał tej daty.
Przykład – Date()
Oto przykład wstawiania dokumentu do kolekcji i używania Date()
jako wartość jednego z pól:
db.dogs.insert(
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : Date()
}
)
Po uruchomieniu tego kodu możemy spojrzeć na wynikowy dokument:
db.dogs.find().pretty()
Wynik:
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)" }
Widzimy, że lastModified
pole daty używa ciągu daty jako wartości.
Przykład – new Date()
Jak wspomniano, jeśli chcesz zwrócić obiekt daty zamiast ciągu daty, użyj new Date()
.
Przykład:
db.dogs.insert(
{
"_id" : 2,
"name" : "Wag",
"lastModified" : new Date()
}
)
Po prostu poprzedź Date()
z new
daje w wyniku obiekt Date, a nie ciąg daty.
Sprawdźmy teraz ponownie kolekcję dokumentów:
db.dogs.find().pretty()
Wynik:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}
{
"_id" : 2,
"name" : "Wag",
"lastModified" : ISODate("2021-01-27T00:19:08.862Z")
}
Widzimy, że data w drugim dokumencie została opakowana za pomocą ISODate()
pomocnik. Data ISO jest w UTC.
Podaj konkretną datę
Możesz podać własną datę podczas wywoływania funkcji Date()
metoda.
Aby to zrobić, przekaż ciąg daty ISO-8601 z rokiem w zakresie włącznie 0
przez 9999
do new Date()
konstruktora lub ISODate()
funkcjonować.
Oto przykład.
db.dogs.update(
{ "_id" : 1 },
{ $set : { "born" : new Date( "2020-10-07" ) } }
)
Sprawdźmy teraz dokument:
db.dogs.find( { "_id": 1 } ).pretty()
Wynik:
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)", "born" : ISODate("2020-10-07T00:00:00Z") }
Widzimy, że pole born zostało dodane i zostało ustawione na podaną datę.
Możesz podać datę w następujących formatach.
Format | Opis |
---|---|
YYYY-mm-dd | Zwraca ISODate z określoną datą. |
YYYY-mm-ddTHH:MM:ss | Określa datę i godzinę w lokalnej strefie czasowej klienta i zwraca ISODate z określoną datą i godziną w UTC. |
YYYY-mm-ddTHH:MM:ssZ | Określa datę i godzinę w UTC i zwraca ISODate z określoną datą i godziną w UTC. |
Liczba całkowita | Możesz również podać liczbę całkowitą jako wartość. Kiedy to zrobisz, określa datę i czas w milisekundach od epoki Uniksa (1 stycznia 1970) i zwraca wynikowy ISODate przykład. |
Epoka Uniksa
Oto przykład określenia liczby całkowitej jako argumentu funkcji new Date()
.
W ten sposób określa się datę i czas w milisekundach od epoki Uniksa (1 stycznia 1970) i zwraca wynikową wartość ISODate
przykład.
db.dogs.update(
{ "_id" : 2 },
{ $set : { "born" : new Date( 1601207768012 ) } }
)
Sprawdźmy teraz dokument:
db.dogs.find( { "_id": 2 } ).pretty()
Wynik:
{ "_id" : 2, "name" : "Wag", "lastModified" : ISODate("2021-01-27T00:19:08.862Z"), "born" : ISODate("2020-09-27T11:56:08.012Z") }