[jQuery UI] πŸ—“οΈ Datepicker 라이브러리 μ‚¬μš©λ²•

RyuΒ·2024λ…„ 2μ›” 21일
0

πŸ“š archiveπŸ“š

λͺ©λ‘ 보기
5/6

πŸ—“οΈ Datepickerλž€?

μ‚¬μš©μžκ°€ μΊ˜λ¦°λ”μ—μ„œ λ‚ μ§œλ₯Ό 선택할 수 μžˆλŠ” jQuery 기반의 라이브러리

πŸ—“οΈ Datepicker μœ„μ ― μ μš©ν•˜κΈ°

1. jQuery, jQuery UI νŒŒμΌμ„ λ‹€μš΄λ°›μ•„ μ›Ή νŽ˜μ΄μ§€μ— λ‘œλ“œ

  • jQueryλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ λΌμ΄λΈŒλŸ¬λ¦¬μ΄λ―€λ‘œ, jQuery νŒŒμΌμ€ μžλ°”μŠ€ν¬λ¦½νŠΈ 파일(.js 파일) ν˜•νƒœλ‘œ μ‘΄μž¬ν•œλ‹€. λ”°λΌμ„œ μ›Ή νŽ˜μ΄μ§€μ—μ„œ jQueryλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” jQuery νŒŒμΌμ„ λ¨Όμ € μ›Ή νŽ˜μ΄μ§€μ— λ‘œλ“œ(load)ν•΄μ•Ό ν•œλ‹€.
  • μ΅œμ‹  λ²„μ „μ˜ jQuery νŒŒμΌμ€ 곡식 μ‚¬μ΄νŠΈμ—μ„œ λ‹€μš΄λ°›μ„ 수 μžˆλ‹€.
  • μ΅œμ‹  λ²„μ „μ˜ jQuery UI νŒŒμΌλ„ λ§ˆμ°¬κ°€μ§€λ‘œ 곡식 μ‚¬μ΄νŠΈμ—μ„œ λ‹€μš΄λ°›μ„ 수 μžˆλ‹€.
  • λ‹€μš΄λ°›μ€ νŒŒμΌμ„ μ„œλ²„μ— μ €μž₯ν•˜κ³  <script> νƒœκ·Έμ™€ <link> νƒœκ·Έλ₯Ό μ›Ή νŽ˜μ΄μ§€μ˜ <head> νƒœκ·Έ 내에 μ‚½μž…ν•˜λ©΄ λœλ‹€.
  • 🚨 jQuery UIλŠ” jQueryλ₯Ό 기반으둜 λ§Œλ“€μ–΄μ‘ŒκΈ° λ•Œλ¬Έμ— jQuery UIλ₯Ό μ‚¬μš©ν•˜λ €λ©΄ λ¨Όμ € jQueryλ₯Ό load ν•΄μ•Ό ν•œλ‹€. 🚨

πŸ‘©πŸ»β€πŸ’» 예제 μ½”λ“œ

<head>
  <link href="파일경둜/제이쿼리-ui-css-파일λͺ….css" rel="stylesheet" type="text/css"/>
  // jQuery λ¨Όμ € load
  <script src="/파일경둜/제이쿼리-파일λͺ….js" type="text/javascript"></script>
  // jQuery UI load
  <script src="/파일경둜/제이쿼리-UI-파일λͺ….js" type="text/javascript"></script>
</head>

2. datepickerλ₯Ό μ μš©ν•  input μš”μ†Œμ— λŒ€ν•΄ datepickerλ₯Ό 호좜

πŸ‘©πŸ»β€πŸ’» 예제 μ½”λ“œ

<script>
  $(function () {
    $("#datepicker").datepicker({
      showOn: "both" // button > λ²„νŠΌμ„ 클릭할 λ•Œ datepicker ν‘œμ‹œ. focus > input ν•„λ“œκ°€ 포컀슀λ₯Ό 받을 λ•Œ ν‘œμ‹œ. both > 두 이벀트 쀑 ν•˜λ‚˜κ°€ λ°œμƒν•  λ•Œ ν‘œμ‹œ.
      , buttonImage: "../images/calender.svg" // datepickerλ₯Ό μ‚¬μš©ν•  λ²„νŠΌ μ΄λ―Έμ§€μ˜ URL
      , buttonImageOnly: true // μœ„μ—μ„œ μ„€μ •ν•œ buttonImageλ₯Ό button μš”μ†Œ μ•ˆμ— λ Œλ”λ§ ν•˜μ§€ μ•Šκ³  λ‹¨λ…μœΌλ‘œ λ Œλ”λ§
      , buttonText: "선택" // λ²„νŠΌμ— ν‘œμ‹œλ˜λŠ” κΈ€μž
      , changeYear: true // dropdown으둜 year 선택 κ°€λŠ₯
      , changeMonth: true // dropdown으둜 month 선택 κ°€λŠ₯
      , dateFormat: 'yy-mm-dd' // ν‘œμ‹œλ˜λŠ” λ‚ μ§œμ˜ ν˜•μ‹
      , dayNames: ['μΌμš”μΌ', 'μ›”μš”μΌ', 'ν™”μš”μΌ', 'μˆ˜μš”μΌ', 'λͺ©μš”일', 'κΈˆμš”μΌ', 'ν† μš”μΌ'] // μΌμš”μΌλΆ€ν„° μ‹œμž‘ν•˜λŠ” μš”μΌ 이름 λͺ©λ‘
      , dayNamesMin: ['일', 'μ›”', 'ν™”', '수', 'λͺ©', '금', 'ν† '] // Datepicker λ‚΄μ—μ„œ μ—΄ λ¨Έλ¦¬κΈ€λ‘œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μΌμš”μΌλΆ€ν„° μ‹œμž‘ν•˜λŠ” μ΅œμ†Œν™”λœ μš”μΌ 이름 λͺ©λ‘ 
      , maxDate: "+5y" // 선택할 수 μžˆλŠ” μ΅œλŒ€ λ‚ μ§œ (+1D:ν•˜λ£¨ν›„, -1M:ν•œλ‹¬ν›„, -1Y:일년후)    
      , minDate: "-5Y" // 선택할 수 μžˆλŠ” μ΅œμ†Œ λ‚ μ§œ (-1D:ν•˜λ£¨μ „, -1M:ν•œλ‹¬μ „, -1Y:일년전)
      , monthNames: ['1μ›”', '2μ›”', '3μ›”', '4μ›”', '5μ›”', '6μ›”', '7μ›”', '8μ›”', '9μ›”', '10μ›”', '11μ›”', '12μ›”'] // 1μ›”λΆ€ν„° μ‹œμž‘ν•˜λŠ” μ›” 이름 λͺ©λ‘
      , monthNamesShort: ['1μ›”', '2μ›”', '3μ›”', '4μ›”', '5μ›”', '6μ›”', '7μ›”', '8μ›”', '9μ›”', '10μ›”', '11μ›”', '12μ›”'] // Datepicker header의 month에 μ‚¬μš©λ˜λŠ” μ›” 이름 λͺ©λ‘
      , showMonthAfterYear: true // Datepicker headerμ—μ„œ ν‘œμ‹œ μˆœμ„œκ°€ 연도-월이 λ˜λ„λ‘
      , showOtherMonths: true // ν˜„μž¬ μ›”μ˜ μ‹œμž‘ λ˜λŠ” 끝에 λ‹€λ₯Έ μ›”μ˜ λ‚ μ§œλ₯Ό ν‘œμ‹œν•˜κ² λ‹€. (선택은 λΆˆκ°€. μ΄λŸ¬ν•œ λ‚ μ§œλ₯Ό 선택할 수 있게 ν•˜λ €λ©΄ selectOtherMonths μ˜΅μ…˜μ„ μ‚¬μš©ν•  것)
      , yearSuffix: "λ…„" // Datepicker header의 연도 뒀에 ν‘œμ‹œν•  μΆ”κ°€ ν…μŠ€νŠΈ
    });
    // Datepicker의 default λ‚ μ§œλ₯Ό μ„€μ •
    $('#datepicker').datepicker('setDate', 'today'); // (-1D:ν•˜λ£¨μ „, -1M:ν•œλ‹¬μ „, -1Y:일년전), (+1D:ν•˜λ£¨ν›„, -1M:ν•œλ‹¬ν›„, -1Y:일년후)
  });
</script>
<input id="datepicker">

πŸ—“οΈ 검색할 λ‚ μ§œμ˜ λ²”μœ„λ₯Ό μ„ νƒν•˜λŠ” 경우

πŸ‘©πŸ»β€πŸ’» 예제 μ½”λ“œ

<script>
  $(function () {
    $("#datepicker-from").datepicker({
      showOn: "both" // button > λ²„νŠΌμ„ 클릭할 λ•Œ datepicker ν‘œμ‹œ. focus > input ν•„λ“œκ°€ 포컀슀λ₯Ό 받을 λ•Œ ν‘œμ‹œ. both > 두 이벀트 쀑 ν•˜λ‚˜κ°€ λ°œμƒν•  λ•Œ ν‘œμ‹œ.
      , buttonImage: "../images/calender.svg" // datepickerλ₯Ό μ‚¬μš©ν•  λ²„νŠΌ μ΄λ―Έμ§€μ˜ URL
      , buttonImageOnly: true // μœ„μ—μ„œ μ„€μ •ν•œ buttonImageλ₯Ό button μš”μ†Œ μ•ˆμ— λ Œλ”λ§ ν•˜μ§€ μ•Šκ³  λ‹¨λ…μœΌλ‘œ λ Œλ”λ§
      , buttonText: "선택" // λ²„νŠΌμ— ν‘œμ‹œλ˜λŠ” κΈ€μž
      , changeYear: true // dropdown으둜 year 선택 κ°€λŠ₯
      , changeMonth: true // dropdown으둜 month 선택 κ°€λŠ₯
      , dateFormat: 'yy-mm-dd' // ν‘œμ‹œλ˜λŠ” λ‚ μ§œμ˜ ν˜•μ‹
      , dayNames: ['μΌμš”μΌ', 'μ›”μš”μΌ', 'ν™”μš”μΌ', 'μˆ˜μš”μΌ', 'λͺ©μš”일', 'κΈˆμš”μΌ', 'ν† μš”μΌ'] // μΌμš”μΌλΆ€ν„° μ‹œμž‘ν•˜λŠ” μš”μΌ 이름 λͺ©λ‘
      , dayNamesMin: ['일', 'μ›”', 'ν™”', '수', 'λͺ©', '금', 'ν† '] // Datepicker λ‚΄μ—μ„œ μ—΄ λ¨Έλ¦¬κΈ€λ‘œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μΌμš”μΌλΆ€ν„° μ‹œμž‘ν•˜λŠ” μ΅œμ†Œν™”λœ μš”μΌ 이름 λͺ©λ‘ 
      , maxDate: "+5y" // 선택할 수 μžˆλŠ” μ΅œλŒ€ λ‚ μ§œ (+1D:ν•˜λ£¨ν›„, -1M:ν•œλ‹¬ν›„, -1Y:일년후)    
      , minDate: "-5Y" // 선택할 수 μžˆλŠ” μ΅œμ†Œ λ‚ μ§œ (-1D:ν•˜λ£¨μ „, -1M:ν•œλ‹¬μ „, -1Y:일년전)
      , monthNames: ['1μ›”', '2μ›”', '3μ›”', '4μ›”', '5μ›”', '6μ›”', '7μ›”', '8μ›”', '9μ›”', '10μ›”', '11μ›”', '12μ›”'] // 1μ›”λΆ€ν„° μ‹œμž‘ν•˜λŠ” μ›” 이름 λͺ©λ‘
      , monthNamesShort: ['1μ›”', '2μ›”', '3μ›”', '4μ›”', '5μ›”', '6μ›”', '7μ›”', '8μ›”', '9μ›”', '10μ›”', '11μ›”', '12μ›”'] // Datepicker header의 month에 μ‚¬μš©λ˜λŠ” μ›” 이름 λͺ©λ‘
      , showMonthAfterYear: true // Datepicker headerμ—μ„œ ν‘œμ‹œ μˆœμ„œκ°€ 연도-월이 λ˜λ„λ‘
      , showOtherMonths: true // ν˜„μž¬ μ›”μ˜ μ‹œμž‘ λ˜λŠ” 끝에 λ‹€λ₯Έ μ›”μ˜ λ‚ μ§œλ₯Ό ν‘œμ‹œν•˜κ² λ‹€. (선택은 λΆˆκ°€. μ΄λŸ¬ν•œ λ‚ μ§œλ₯Ό 선택할 수 있게 ν•˜λ €λ©΄ selectOtherMonths μ˜΅μ…˜μ„ μ‚¬μš©ν•  것)
      , yearSuffix: "λ…„" // Datepicker header의 연도 뒀에 ν‘œμ‹œν•  μΆ”κ°€ ν…μŠ€νŠΈ
    });
    // Datepicker의 default λ‚ μ§œλ₯Ό μ„€μ •
    $("#datepicker-to").datepicker({
      showOn: "both" // button > λ²„νŠΌμ„ 클릭할 λ•Œ datepicker ν‘œμ‹œ. focus > input ν•„λ“œκ°€ 포컀슀λ₯Ό 받을 λ•Œ ν‘œμ‹œ. both > 두 이벀트 쀑 ν•˜λ‚˜κ°€ λ°œμƒν•  λ•Œ ν‘œμ‹œ.
      , buttonImage: "../images/calender.svg" // datepickerλ₯Ό μ‚¬μš©ν•  λ²„νŠΌ μ΄λ―Έμ§€μ˜ URL
      , buttonImageOnly: true // μœ„μ—μ„œ μ„€μ •ν•œ buttonImageλ₯Ό button μš”μ†Œ μ•ˆμ— λ Œλ”λ§ ν•˜μ§€ μ•Šκ³  λ‹¨λ…μœΌλ‘œ λ Œλ”λ§
      , buttonText: "선택" // λ²„νŠΌμ— ν‘œμ‹œλ˜λŠ” κΈ€μž
      , changeYear: true // dropdown으둜 year 선택 κ°€λŠ₯
      , changeMonth: true // dropdown으둜 month 선택 κ°€λŠ₯
      , dateFormat: 'yy-mm-dd' // ν‘œμ‹œλ˜λŠ” λ‚ μ§œμ˜ ν˜•μ‹
      , dayNames: ['μΌμš”μΌ', 'μ›”μš”μΌ', 'ν™”μš”μΌ', 'μˆ˜μš”μΌ', 'λͺ©μš”일', 'κΈˆμš”μΌ', 'ν† μš”μΌ'] // μΌμš”μΌλΆ€ν„° μ‹œμž‘ν•˜λŠ” μš”μΌ 이름 λͺ©λ‘
      , dayNamesMin: ['일', 'μ›”', 'ν™”', '수', 'λͺ©', '금', 'ν† '] // Datepicker λ‚΄μ—μ„œ μ—΄ λ¨Έλ¦¬κΈ€λ‘œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μΌμš”μΌλΆ€ν„° μ‹œμž‘ν•˜λŠ” μ΅œμ†Œν™”λœ μš”μΌ 이름 λͺ©λ‘ 
      , maxDate: "+5y" // 선택할 수 μžˆλŠ” μ΅œλŒ€ λ‚ μ§œ (+1D:ν•˜λ£¨ν›„, -1M:ν•œλ‹¬ν›„, -1Y:일년후)    
      , minDate: "-5Y" // 선택할 수 μžˆλŠ” μ΅œμ†Œ λ‚ μ§œ (-1D:ν•˜λ£¨μ „, -1M:ν•œλ‹¬μ „, -1Y:일년전)
      , monthNames: ['1μ›”', '2μ›”', '3μ›”', '4μ›”', '5μ›”', '6μ›”', '7μ›”', '8μ›”', '9μ›”', '10μ›”', '11μ›”', '12μ›”'] // 1μ›”λΆ€ν„° μ‹œμž‘ν•˜λŠ” μ›” 이름 λͺ©λ‘
      , monthNamesShort: ['1μ›”', '2μ›”', '3μ›”', '4μ›”', '5μ›”', '6μ›”', '7μ›”', '8μ›”', '9μ›”', '10μ›”', '11μ›”', '12μ›”'] // Datepicker header의 month에 μ‚¬μš©λ˜λŠ” μ›” 이름 λͺ©λ‘
      , showMonthAfterYear: true // Datepicker headerμ—μ„œ ν‘œμ‹œ μˆœμ„œκ°€ 연도-월이 λ˜λ„λ‘
      , showOtherMonths: true // ν˜„μž¬ μ›”μ˜ μ‹œμž‘ λ˜λŠ” 끝에 λ‹€λ₯Έ μ›”μ˜ λ‚ μ§œλ₯Ό ν‘œμ‹œν•˜κ² λ‹€. (선택은 λΆˆκ°€. μ΄λŸ¬ν•œ λ‚ μ§œλ₯Ό 선택할 수 있게 ν•˜λ €λ©΄ selectOtherMonths μ˜΅μ…˜μ„ μ‚¬μš©ν•  것)
      , yearSuffix: "λ…„" // Datepicker header의 연도 뒀에 ν‘œμ‹œν•  μΆ”κ°€ ν…μŠ€νŠΈ
    });
    // Datepicker의 default λ‚ μ§œλ₯Ό μ„€μ •  
    $('#datepicker-from').datepicker('setDate', 'today'); // (-1D:ν•˜λ£¨μ „, -1M:ν•œλ‹¬μ „, -1Y:일년전), (+1D:ν•˜λ£¨ν›„, -1M:ν•œλ‹¬ν›„, -1Y:일년후)
    $('#datepicker-to').datepicker('setDate', 'today'); // (-1D:ν•˜λ£¨μ „, -1M:ν•œλ‹¬μ „, -1Y:일년전), (+1D:ν•˜λ£¨ν›„, -1M:ν•œλ‹¬ν›„, -1Y:일년후)  
  });
</script>
<label for="datepicker-from">From</label>
<input id="datepicker-from">
<label for="datepicker-to">to</label>
<input id="datepicker-to">

jQuery API documentation에 options와 methods에 λŒ€ν•œ μ„€λͺ…이 μžμ„Ένžˆ λ‚˜μ™€μžˆμœΌλ‹ˆ μ°Έκ³ ν•΄μ„œ μ•Œλ§žκ²Œ customν•˜λ©΄ λœλ‹€! 😊

참고 자료

profile
λ‚΄ κΏˆμ€ 우주 μ΅œκ°• 개발자 πŸ‘Ύ

0개의 λŒ“κΈ€