Rozważ poniższy kod,

const appointments = [

  {
    // id: 0,
  title: 'Watercolor Landscape',
  users_id: 2,
    startDate: new Date(1584576000000 * 1000),   // here is timestamps in milliseconds 
    endDate:  new Date(1584662400000* 1000),       // here is timestamps in milliseconds
    ownerId: 1,
  },
];

Ale dane wyjściowe startDate były nieprawidłowe,:

enter image description here

Powinno być:

StartDate: czwartek, 19 marca 2020 08:00:00 GMT + 08:00

EndDate: piątek, 20 marca 2020 08:00:00 GMT + 08:00

-2
koko ka 1 kwiecień 2020, 13:07

4 odpowiedzi

Najlepsza odpowiedź

Po prostu użyj: new Date(your_timestamps)
Więc w swoim kodzie: startDate: new Date(1584576000000)

Przeczytaj więcej o obiekcie Date w Javascript tutaj https://developer.mozilla.org/en- US / docs / Web / JavaScript / Reference / Global_Objects / Date

1
Paul Nguyen 1 kwiecień 2020, 10:11

Wydaje mi się, że powinieneś po prostu usunąć * 1000 i wszystko będzie działać poprawnie:

console.log(new Date(1584576000000))
// Thu Mar 19 2020 02:00:00 GMT+0200

console.log(new Date(1584662400000))
// Fri Mar 20 2020 02:00:00 GMT+0200
0
Mark Minerov 1 kwiecień 2020, 10:11

Aby uzyskać znacznik czasu w milisekundach w JS, możesz:

var date = new Date();
var timestamp = date.getTime();

Jeśli nie zamierzasz obsługiwać IE8 lub poprzednich wersji, możesz użyć:

Date.now();

UWAGA: sygnatura czasowa to liczba milisekund, które minęły od 1 stycznia 1970 r.

Przeczytaj więcej tutaj.

1
Ludolfyn 1 kwiecień 2020, 11:12

Unix timestamp jest już w milisekundach, Date.now() pobiera znacznik czasu w milisekundach!

Aby uzyskać uniksowy znacznik czasu w sekund , musisz podzielić go na 1000

Math.floor(Date.now() / 1000)
1
a_m_dev 1 kwiecień 2020, 10:11