Używam tej funkcji export const getDate = (stamp: string) => { console.log(stamp) //1581638400000 let date : any = Date.parse(stamp) console.log(date) //NaN let month = date. ...

-1
mouchin777 27 czerwiec 2021, 13:55

4 odpowiedzi

Najlepsza odpowiedź

Powinieneś użyć new Date(). Date.parse() spodziewaj się reprezentację ciągu i wydaje się, że nadajesz mu liczbę.

Ponadto otrzymujesz źle sformatowaną datę:

Zwraca getDay() dzień tygodnia, liczba od 0 do 6. Użyj getDate() zamiast tego zwraca liczbę od 1 do 31.

Rozpoczyna się getMonth() od 0.

getYear() jest przestarzałe użycie getFullYear() zamiast tego.

Patrz poniżej:

const getDate = (stamp) => {
  console.log(stamp);
  let date = new Date(stamp);
  console.log(date);
  let month = date.getMonth() + 1;
  let day = date.getDate();
  let year = date.getFullYear();
  let formattedTime = month + '/' + day + '/' + year;
  return formattedTime;
}

console.log(getDate(1581638400000));
0
Snirka 27 czerwiec 2021, 11:37
var date = new Date(stamp * 1000);  // * 1000 if you want milliseconds
-1
Mario Abbruscato 27 czerwiec 2021, 10:59
let stamp = "1581638400000"
const getDate = (stamp) => {
    console.log(new Date(Number(stamp))) ;//1581638400000
    let date = new Date(Number(stamp));
    console.log(date); //NaN
    let month = date.getMonth();
    let day = date.getDay();
    // let year = date.getYear(); Deprecated!!!
    let year = date.getFullYear();

    let formattedTime = month + '/' + day + '/' + year;
    console.log(formattedTime);
    return formattedTime;
}

getDate(stamp)
0
Hamada 27 czerwiec 2021, 11:13

Date.parse analizuje ciąg reprezentujący datę i zwraca liczbę milisekund.

Spróbuj użyć Date konstruktor w następujący sposób:

const date = new Date(1581638400000);

const 
  month = date.getMonth() + 1,
  day = date.getDate(),
  year = date.getFullYear();
  
const formattedTime = month + '/' + day + '/' + year;

console.log(formattedTime);
0
Majed Badawi 27 czerwiec 2021, 11:09