Mam kilka ciągów reprezentujących daty: 162021 zmień to na -> 1 czerwca 2021 r. 2182021 zmień to na -> 21 sierpnia 2021 r. Jaki jest najłatwiejszy sposób na osiągnięcie tego? Wygląda na to, że się myliłem w tej sprawie...

-2
William 27 czerwiec 2021, 14:43

5 odpowiedzi

Najlepsza odpowiedź

Jeśli zrozumiałem twoje pytanie, prawdopodobnie potrzebujesz czegoś takiego:

function stringToDate(str) {
   const months = 
   ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec'];
   let currentMonth = str.slice(2,4);
   let currentDay = str.slice(0,2);
   let currentYear = str.slice(4,8);

   return `${months[Number(currentMonth) - 1]},${currentDay},${currentYear}`
}
stringToDate('21082021');// => Aug,21,2021
stringToDate('01062021');// => Jun,01,2021

Zmieniłem to, że dla dni i miesięcy dodawałem jedną cyfrę 0. W ten sposób łatwiej je rozróżnić.

0
Alex Popov 27 czerwiec 2021, 12:07

Próbować

new Date("2021/6/1") 

Jeśli możesz dodać "/". zwraca "wt 01 cze 2021 ..."

Możesz to zobaczyć w konsoli devtools, po prostu wpisz

console.log(new Date("2021/6/1"))

I możesz użyć String.prototype.slice(), aby uzyskać żądany ciąg za pomocą indeksu

0
Tatsuhiko Mizuno 27 czerwiec 2021, 12:02

Może to może ci pomóc:

let date = new Date(if your date string is valid put in here)
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDay()
let all = `${day}${month}${year}`
console.log(all)
0
Mehan Alavi 27 czerwiec 2021, 12:05
const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
  ];
  var timestring = "02182021";

  var parts = timestring.match(/.{1,2}/g);
  var new_value = parts.join("-"); 
  new_value = new_value.slice(0, 8)+new_value.slice(9);  
  var new_date =  new Date(new_value);
  
  console.log(monthNames[new_date.getMonth()]+","+new_date.getDate()+","+new_date.getFullYear());
0
Papai from BEKOAIL 27 czerwiec 2021, 12:15

Funkcja

const formatMyStringDate=(stringDate)=>{
     const monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];
    let day=stringDate.substr(0,2);
        month=stringDate.substr(2,2);
        year =stringDate.substr(4,4);

        return `${monthNames[parseInt(month)-1]}, ${day}, ${year}`;
}

spróbuj tego

let testDate=formatMyStringDate("02122021");
console.log(testDate)
0
hayat khan 27 czerwiec 2021, 12:16