JavaScript의 new Date() 생성자는 다양한 형식의 날짜 문자열을 받아들일 수 있지만, 브라우저마다 해석하는 방식이 다릅니다.
const JS_시험날짜보는기능 = () => {
// const 자격증시험일 = new Date("2020-09-10 10:30:00") // => 크롬O, 사파리X
const 자격증시험일 = new Date("2020/09/10 10:30:00") // => 크롬O, 사파리O
const 몇월 = 자격증시험일.getMonth() + 1
alert(자격증시험일은 ${몇월}월달 이군요!)
}
"2020-09-10 10:30:00"):
new Date("2020-09-10 10:30:00")를 올바르게 해석하고, 해당 날짜와 시간을 반환합니다.Invalid Date를 반환할 수 있습니다. 이는 Safari가 하이픈 형식을 RFC 2822 날짜 형식으로 해석하려 시도하기 때문입니다."2020/09/10 10:30:00"):
new Date("2020/09/10 10:30:00")를 동일하게 인식하며, 정확한 날짜와 시간을 반환합니다. 이는 슬래시를 사용한 형식이 브라우저 간에 더 널리 호환되기 때문입니다.위에서 제공한 실습코드를 가지고 Safari에서 실행하게 되면, 아래 사진과 같이 글자가 깨져서 보이게 됩니다.

해결 방안은 <meta *charset*="UTF-8"> 해당 코드를 <head> 에 추가해주어야 합니다.
Safari는 다른 브라우저와 마찬가지로 기본적으로 문서의 인코딩을 해석하려고 합니다. 하지만 인코딩이 명확히 지정되지 않으면, 특히 한글 문서에서 문자가 깨지는 문제가 발생할 수 있습니다. 사파리는 때때로 특정 상황에서 인코딩을 제대로 추측하지 못해 한글이 깨질 가능성이 있기 때문에, <meta charset="UTF-8">를 사용해 명확하게 지정해주는 것이 중요합니다.
Chrome에서는 한글이 제대로 표시되었지만, Safari에서는 한글이 깨졌습니다. 이는 HTML 문서에 인코딩이 명시되지 않아 발생한 문제입니다. 이를 해결하려면 <meta charset="UTF-8"> 태그를 <head>에 추가해야 합니다. 이 태그를 사용하면 Safari와 Chrome 모두에서 한글이 올바르게 표시되어 크로스브라우징이 제대로 이루어집니다.