Javascript 정리(6)

kirin.logΒ·2021λ…„ 2μ›” 3일
0

βœ… λ‚ μ§œμ™€ μ‹œκ°„

πŸ‘‰ λ‚ μ§œμ™€ μ‹œκ°„μ„ μ €μž₯ν•˜κ³  보여쀄 λ•Œ λ‚ μ§œ 객체λ₯Ό μ‚¬μš©ν•œλ‹€.
(λ‚ μ§œ 객체λ₯Ό ν˜ΈμΆœν•˜λ©΄ μ‰½κ²Œ μ‹œκ°„κ³Ό λ‚ μ§œλ₯Ό 얻을 수 μžˆλ‹€)

ex)

  • νšŒμ›κ°€μž…μ„ ν•œ λ‚ μ§œμ™€ μ‹œκ°„
  • 글을 μž‘μ„±ν•œ μ‹œκ°„
  • νœ΄λŒ€ν°μ˜ ν˜„μž¬ μ‹œκ°„

πŸ‘‰ λ‚ μ§œ 객체λ₯Ό 생성 및 ν•  λ•ŒλŠ” new μ—°μ‚°μž(Date μƒμ„±μž) λ‹€μŒμ— Date μƒμ„±μžλ₯Ό μ“΄λ‹€.
πŸ”Ή JavaScript의 Date κ°μ²΄λŠ” λ‚ μ§œμ™€ μ‹œκ°„μ— κ΄€λ ¨λœ λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•˜λŠ” λ‚΄μž₯ν•¨μˆ˜μ΄λ‹€.
πŸ”Ή μƒμ„±λœ Date μΈμŠ€ν„΄μŠ€(new Date();)λŠ” 기본적으둜 ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” 값을 κ°–κ²Œ λœλ‹€.

var rightNow = new Date();
console.log(rightNow);

πŸ”½ consol.log 좜λ ₯κ²°κ³Ό

πŸ‘‰ μœ„μ™€ 같이 new Date()λ₯Ό 톡해 ν˜„μž¬ μ‹œκ°„μ„ κ°€μ Έμ˜¨ ν›„, λ‹€λ₯Έ λ‚ μ§œ 포맷으둜 μ›Ήμ‚¬μ΄νŠΈμ— λ³΄μ—¬μ€˜μ•Ό ν•œλ‹€.

🚫 new Date()κ°€ λ°˜ν™˜λœ 값을 κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
Date νƒ€μž…μ΄ κ°–κ³  μžˆλŠ” λ©”μ„œλ“œλ₯Ό ν™œμš©ν•˜μ—¬ 값을 λ°›μ•„μ˜¨λ‹€.
πŸ‘‰ getFullYear(), getDate(), getDay()

const date = new Date();

let year = date.getFullYear();   // ν˜„μž¬ 년도 λ°˜ν™˜
let date = date.getDate();       // ν˜„μž¬ λ‚ μ§œ λ°˜ν™˜
let day = date.getDay();         // ν˜„μž¬ μš”μΌ λ°˜ν™˜

❗ Date 객체둜 ν˜„μž¬ μ‹œκ°„μ„ κ°€μ Έμ˜¨ ν›„, Date 객체가 κ°–κ³  μžˆλŠ” ν•¨μˆ˜λ‘œ 각 λ‚ μ§œ(λ…„, μ›”, 일), μ‹œκ°„(μ‹œ, λΆ„, 초)의 값을 κ°€μ Έμ˜¬ 수 μžˆλ‹€.

let rightNow = new Date();
// Date νƒ€μž…μ΄ κ°–κ³  μžˆλŠ” λ©”μ„œλ“œλ₯Ό ν™œμš©
let year = rightNow.getFullYear();
let month = rightNow.getMonth()+1;
let date = rightNow.getDate();
let day = rightNow.getDay();
let currentHour = rightNow.getHours();
let currentMin = rightNow.getMinutes();

πŸ”½ consol.log 좜λ ₯κ²°κ³Ό
// console.log(year) // 2020
// console.log(month) // 12
// console.log(date) // 21
// console.log(day) // 1
// console.log(currentHour) // 10

🚫 getMonth ν•¨μˆ˜λ‘œ 값을 받을 λ•Œ, ν˜„μž¬ 달보닀 1 μž‘μ€ 값이 λ°˜ν™˜λ˜λ―€λ‘œ 주의. (+1 뢙여주기❗❗❗)

πŸ‘‰ getTime

  • 기쀀이 λ˜λŠ” μΌμžλŠ” 1970λ…„ 1μ›” 1일
  • κΈ°μ€€ 일자인 1970λ…„ 1μ›” 1μΌλ‘œλΆ€ν„° 1564563605026(ν˜„μž¬ 일자) λ°€λ¦¬μ΄ˆκ°€ μ§€λ‚¬λ‹€λŠ” 의미
let rightNow = new Date();
let time = rightNow.getTime();

console.log(rightNow);  // 1564563605026 λ°˜ν™˜
// μ§€κΈˆμ˜ μ‹œκ°„μ΄ λ°€λ¦¬μ΄ˆλ‘œ ν‘œν˜„λœ 것

🚫 λ§Œμ•½ 10λΆ„ 뒀에 λ‹€μ‹œ μƒˆλ‘œ new Date()λ₯Ό ν˜ΈμΆœν•˜λ©΄, μ‹œκ°„μ΄ 쑰금 ν˜λ €μœΌλ‹ˆ μœ„μ˜ 1564563605026 λ³΄λ‹€λŠ” 큰 μˆ«μžκ°€ λ‚˜μ˜¬ 것.

μ΄λ ‡κ²Œ getTimeν•¨μˆ˜λ‘œ λ°˜ν™˜λœ 숫자둜 비ꡐ연산을 톡해 μ–Έμ œκ°€ 더 과거인지 νŒλ‹¨ν•  수 μžˆλ‹€.

✨ 값이 더 μž‘μœΌλ©΄ 과거이닀.
(μ‹œκ°„μ΄ μ§€λ‚ μˆ˜λ‘ κΈ°μ€€ μΌμžλ‘œλΆ€ν„° λ°€λ¦¬μ΄ˆκ°€ λ”ν•΄μ§€λ―€λ‘œ 값이 컀질수둝 ν˜„μž¬μ΄λ‹€)

πŸ‘‰ νŠΉμ • λ‚ μ§œμ˜ Date
πŸ”Ή νŠΉμ • λ‚ μ§œλ₯Ό λ§€κ°œλ³€μˆ˜λ‘œ λ„˜κ²¨μ£Όλ©΄, ν•΄λ‹Ή λ‚ μ§œμ˜ Dateλ₯Ό λ°˜ν™˜ 받을 수 μžˆλ‹€.
πŸ”Ή ν˜„μž¬ λ‚ μ§œ&μ‹œκ°„μ΄ μ•„λ‹Œ νŠΉμ •ν•œ λ‚ μ§œ&μ‹œκ°„μ„ μ„€μ •ν•˜κ³  싢을 κ²½μš°μ—” Date μƒμ„±μž(new Date();)에 μ›ν•˜λŠ” λ‚ μ§œ&μ‹œκ°„μ„ νŒŒλΌλ―Έν„°λ‘œ μ „λ‹¬ν•΄μ€˜μ•Ό ν•œλ‹€.

let date1 = new Date('December 17, 2019 03:24:00');
console.log(date1);  //ν˜„μž¬ λ‚ μ§œ&μ‹œκ°„
// 'Tue Dec 17 2019 03:24:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)'
let date2 = new Date('2019-12-17T03:24:00');
console.log(date2);
// 'Tue Dec 17 2019 03:24:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)'
let date3 = new Date(2019, 5, 1);
console.log(date3);
// 'Sat Jun 01 2019 00:00:00 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)'
let date4 = new Date('2020-07-13T12:34:56.000Z');
console.log(date4); 
// Mon Jul 13 2020 12:34:56 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)
let date5 = new Date(2020, 6, 13, 12, 34, 56, 0);
console.log(date5); // Mon Jul 13 2020 12:34:56 GMT+0900 (λŒ€ν•œλ―Όκ΅­ ν‘œμ€€μ‹œ)

μ°Έκ³  site https://freestrokes.tistory.com/112

/* 
미ꡭ은 νƒœμ–΄λ‚˜μžλ§ˆμž 0살이고 생일을 μ§€λ‚˜μ•Ό λΉ„λ‘œμ†Œ ν•œ 살이 λ©λ‹ˆλ‹€. λ°˜λ©΄μ— ν•œκ΅­μ€ νƒœμ–΄λ‚˜μžλ§ˆμž 1살이고 연도가 λ°”λ€” λ•Œλ§ˆλ‹€ ν•œ μ‚΄μ”© λ¨ΉμŠ΅λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄ λ―Έκ΅­μ—μ„œλŠ” 1995λ…„ 9μ›” 12일에 νƒœμ–΄λ‚¬μœΌλ©΄ 1995λ…„ 9μ›” 12μΌμ—λŠ” 0살이고, 1996λ…„ 9μ›” 12일이 λ˜μ•Ό 1살이 λ©λ‹ˆλ‹€. 그에 λΉ„ν•΄ ν•œκ΅­μ—μ„œλŠ” 1995λ…„ 9μ›” 12일에 νƒœμ–΄λ‚˜μžλ§ˆμž 1살이고 1996λ…„ 1μ›” 1일에 2살이 λ©λ‹ˆλ‹€. 
λ―Έκ΅­μ΄λ‚˜ λ‹€λ₯Έ λ‚˜λΌκ°€ μ‚¬μš©ν•˜λŠ” λ‚˜μ΄ 계산법은 μš°λ¦¬λ‚˜λΌμ—μ„œλŠ” '만 λ‚˜μ΄' 라고 ν•˜μ£ .
μ•žμ„œ λ§ν•œ 만으둜 κ³„μ‚°ν•œ λ‚˜μ΄λ₯Ό κ΅¬ν•˜λŠ” ν•¨μˆ˜μΈ getWesternAge ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•΄ λ΄…μ‹œλ‹€.
이 ν•¨μˆ˜λŠ” birthday λΌλŠ” 인자λ₯Ό λ°›κ³  이 birthdayλŠ” Date κ°μ²΄μž…λ‹ˆλ‹€. birthdayλΌλŠ” 인자λ₯Ό λ„£μ—ˆμ„ λ•Œ, ν˜„μž¬λ₯Ό κΈ°μ€€μœΌλ‘œ 만으둜 κ³„μ‚°ν•œ λ‚˜μ΄λ₯Ό 리턴 해주도둝 κ΅¬ν˜„ν•΄ λ΄…μ‹œλ‹€. birthdayλŠ” string이 μ•„λ‹Œ Date κ°μ²΄λΌλŠ” κ±Έ λͺ…μ‹¬ν•˜μ„Έμš”.
예λ₯Ό λ“€μ–΄, 였늘이 2020λ…„ 7μ›” 21일이고, birthday 값이 λ‹€μŒκ³Ό κ°™λ‹€λ©΄:
1990-03-21T00:45:06.562Z
리턴 값은 30 이 λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.
*/

 function getWesternAge(birthday) {
    let birth = new Date(birthday); // 인자둜 받을 birthday값을 new Data의 λ©”μ†Œλ“œ μΈμžμ— λ„£μ–΄μ„œ νƒœμ–΄λ‚œ λ‚ μ§œ ν•¨μˆ˜λ₯Ό birth λ³€μˆ˜μ— λ„£μ–΄μ„œ 객체λ₯Ό 생성해 μ€€λ‹€
    let today = new Date();  // 였늘 λ‚ μ§œ κΈ°μ€€μœΌλ‘œ λ‚˜μ΄λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄ Date 객체 생성
    let age = today.getFullYear() - birth.getFullYear();  // μ˜€λŠ˜λ‚ μ§œ 객체의 μ—°λ„μ—μ„œ 생년월일 객체의 연도λ₯Ό λΊ€λ‹€. = μ‹€μ§ˆμ μœΌλ‘œ ꡬ해진 λ‚˜μ΄

    birth.setFullYear(today.getFullYear()); // birth값을 setFullYear(μƒˆλ‘œ λ°›λŠ” 연도 값을 λ°›λŠ”λ‹€)에 λ„£κ³ , todayκ°’μ˜ getFullYear(ν˜„μž¬ λ‚ μ§œμ˜ 년도 4자리)λ₯Ό λ„£λŠ”λ‹€. 
      // 즉 birth의 년도와 today의 년도λ₯Ό κ°™κ²Œ ν•΄μ€€λ‹€ (μ›”/일 을 λΉ„κ΅ν•˜κΈ° μœ„ν•΄)
    if (today > birth) {   // νƒœμ–΄λ‚œ μ›”/일 보닀 였늘의 μ›”/일이 크면
     age;
    } else {               // νƒœμ–΄λ‚œ μ›”/일 보닀 였늘의 μ›”/일이 μž‘μœΌλ©΄ 1μ‚΄ λ¨ΉκΈ° μ „
     age--;
    }
   return age;
}
getWesternAge("1991, 5, 2");

❗ .setFullYear() : 4자리 수의 연도 및 μ›”,일을 μ„€μ •ν•œλ‹€

var t = new Date(1980,1,3);
t.setFullYear(1979,11,16);
console.log(t);   // λ¬Έμžμ—΄, Sun Dec 16 1979 00:00:00 GMT+0900

❗ .getFullYear() : ν˜„μ§€ μ‹œκ°„μ˜ 연도에 ν•΄λ‹Ήν•˜λŠ” 숫자, μ ˆλŒ€κ°’ 4자리(연도) 좜λ ₯
var today = new Date();
var year = today.getFullYear();
console.log(year); // λ¬Έμžμ—΄, 2020

profile
boma91@gmail.com

0개의 λŒ“κΈ€