1. ¶óÀ̼¾½º
ÀÌ Ç÷¯±×ÀÎÀº MIT ¶óÀ̼¾½º·Î ¹èÆ÷µË´Ï´Ù.
°³ÀÎ ¹× »ó¾÷Àû ÇÁ·ÎÁ§Æ® ¸ðµÎ ÀÚÀ¯·Ó°Ô »ç¿ë, ¼öÁ¤, ¹èÆ÷ÇÒ ¼ö ÀÖ½À´Ï´Ù.
´Ü, ¿øº» ÀúÀÛ±Ç Ç¥½Ã´Â À¯ÁöÇØ¾ß ÇÕ´Ï´Ù.
2. Ư¡ ¹× ¼³¸í
bsTimepicker´Â jQuery¿Í BootstrapÀ» ±â¹ÝÀ¸·Î µ¿ÀÛÇÏ´Â ¿øÇü ½Ã°è ´ÙÀÌ¾ó ¹æ½ÄÀÇ ½Ã°£ ¼±Åñâ Ç÷¯±×ÀÎÀÔ´Ï´Ù. ¸ð¹ÙÀÏ ¾Ë¶÷ ¾Û¿¡¼ º¼ ¼ö ÀÖ´Â ¿øÇü ´ÙÀ̾ó UI¸¦ À¥ Æû¿¡ ±×´ë·Î ±¸ÇöÇÒ ¼ö ÀÖÀ¸¸ç, BootstrapÀÇ µå·Ó´Ù¿î ÄÄÆ÷³ÍÆ®¸¦ Ȱ¿ëÇÏ¿© ±âÁ¸ Bootstrap ±â¹Ý ÇÁ·ÎÁ§Æ®¿¡ ÀÚ¿¬½º·´°Ô ÅëÇյ˴ϴÙ.

Áö¿ø ȯ°æ
jQuery 3.x ÀÌ»ó / Bootstrap 4.6.x ¶Ç´Â 5.x / Bootstrap Icons
ÁÖ¿ä ±â´É
· 24½Ã°£(HH:mm) ¹× 12½Ã°£(AM/PM) Ç¥½Ã ¸ðµå Áö¿ø
· ¸¶¿ì½º Ŭ¸¯ ¹× ÅÍÄ¡ µå·¡±×·Î Á¶ÀÛ °¡´ÉÇÑ ¿øÇü ½Ã°è ´ÙÀ̾ó
· input ¿ä¼Ò, div ¿ä¼Ò, Bootstrap form-floating ÄÁÅ×ÀÌ³Ê ¸ðµÎ Áö¿ø
· ºÐ ¼±Åà °£°Ý ¼³Á¤ °¡´É (1ºÐ / 5ºÐ / 10ºÐ / 15ºÐ ´ÜÀ§)
· µ¥ÀÌÅͺ£À̽º ÀúÀå¿¡ ¹Ù·Î »ç¿ë °¡´ÉÇÑ 24½Ã°£ Çü½Ä(HH:mm) °ª ¹Ýȯ
· div¿¡ ÃʱâÈ ½Ã ¼û±è input ÀÚµ¿ »ý¼º (nameField ¿É¼Ç)
· Ãë¼Ò ¶Ç´Â ¿ÜºÎ Ŭ¸¯ ½Ã ÀÌÀü °ªÀ¸·Î ÀÚµ¿ º¹¿ø
· Æ®¸®°Å ¹öư ½ºÅ¸ÀÏ, ³Êºñ, ¾ÆÀÌÄÜ ÀÚÀ¯ Ä¿½ºÅ͸¶ÀÌ¡
· Ŭ¸®¾î ¹öư Ç¥½Ã ¿©ºÎ ¹× ·¹À̺í Ä¿½ºÅ͸¶ÀÌ¡
· minuteInterval ¼³Á¤ ÈÄ ÀÚµ¿ ´Ý±â ¿É¼Ç(closeOnSelect)
· show / hide / toggle / setTime / getTime / val / clear / destroy °ø°³ API Á¦°ø
· ÃʱâÈ, ¿¸²/´ÝÈû, °ª º¯°æ µî ¼¼ºÐÈµÈ À̺¥Æ® ÈÅ Áö¿ø
3. ¼³Ä¡ ¹æ¹ý & »ç¿ë ¹æ¹ý
¼³Ä¡ ¹æ¹ý
¾Æ·¡ ¼ø¼´ë·Î CSS¿Í JS ÆÄÀÏÀ» HTML ¹®¼¿¡ ºÒ·¯¿É´Ï´Ù. Bootstrap Icons´Â ±âº» Æ®¸®°Å ¾ÆÀÌÄÜ¿¡ ÇʼöÀÔ´Ï´Ù.
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
<!-- Bootstrap Icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css">
<!-- jQuery -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script>
<!-- Bootstrap Bundle (Popper.js Æ÷ÇÔ) -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<!-- bsTimepicker Ç÷¯±×ÀÎ -->
<script src="dist/bs-timepicker.js"></script>
±âº» »ç¿ë¹ý — input ¿ä¼Ò (24½Ã°£)
<input type="text" id="meetingStart" value="09:00"> $("#meetingStart").bsTimepicker({ format: "24h" });
±âº» »ç¿ë¹ý — input ¿ä¼Ò (12½Ã°£ AM/PM)
±âº» »ç¿ë¹ý — input ¿ä¼Ò (12½Ã°£ AM/PM) <input type="text" id="reminderTime" value="10:30 AM"> $("#reminderTime").bsTimepicker({ format: "12h" });
±âº» »ç¿ë¹ý — div ¿ä¼Ò (¼û±è input ÀÚµ¿ »ý¼º)
<div id="shiftStart"></div> $("#shiftStart").bsTimepicker({ format: "24h", defaultTime: "07:30", nameField: "shift_start", btnClass: "btn btn-primary", btnWidth: "200px", btnEmptyText: "½Ã°£À» ¼±ÅÃÇϼ¼¿ä" });
Àüü ¿É¼Ç ¸ñ·Ï
format (±âº»°ª: "24h") — "24h" ¶Ç´Â "12h" Áß ¼±ÅÃÇÕ´Ï´Ù.
minuteInterval (±âº»°ª: 5) — ºÐ ¼±Åà ´ÜÀ§. 1, 5, 10, 15 Áß ¼±ÅÃ.
defaultTime (±âº»°ª: null) — ÃʱⰪÀÌ ¾øÀ» ¶§ »ç¿ëÇÒ ±âº» ½Ã°£. "14:00", "02:00 PM", new Date(), { hour24: 14, minute: 0 } Çü½Ä ¸ðµÎ Çã¿ë.
nameField (±âº»°ª: null) — div¿¡ ÃʱâÈÇÒ ¶§ »ý¼ºÇÒ ¼û±è inputÀÇ name ¼Ó¼º°ª.
title (±âº»°ª: "Select time") — µå·Ó´Ù¿î »ó´Ü¿¡ Ç¥½ÃÇÒ Á¦¸ñ. null ¶Ç´Â ºó ¹®ÀÚ¿·Î ¼û±æ ¼ö ÀÖÀ½.
closeOnSelect (±âº»°ª: false) — true·Î ¼³Á¤ ½Ã ºÐ ¼±Åà ÈÄ ÀÚµ¿À¸·Î ´ÝÈû.
btnClass (±âº»°ª: "btn btn-outline-secondary") — Æ®¸®°Å ¹öư¿¡ Àû¿ëÇÒ Bootstrap Ŭ·¡½º.
btnWidth (±âº»°ª: null) — Æ®¸®°Å ¹öưÀÇ °íÁ¤ ³Êºñ. ¿¹: "220px".
btnEmptyText (±âº»°ª: "--:--") — °ªÀÌ ¾øÀ» ¶§ Æ®¸®°Å¿¡ Ç¥½ÃÇÒ ¾È³» ¹®±¸.
showClearButton (±âº»°ª: true) — Ŭ¸®¾î ¹öư Ç¥½Ã ¿©ºÎ.
clearLabel — Ŭ¸®¾î ¹öư ·¹À̺í. HTML »ç¿ë °¡´É.
icons.trigger (±âº»°ª: "bi bi-clock") — Æ®¸®°Å ¹öư ¾ÆÀÌÄÜ Å¬·¡½º.
okLabel — È®ÀÎ ¹öư ·¹À̺í. HTML »ç¿ë °¡´É.
cancelLabel — Ãë¼Ò ¹öư ·¹À̺í. HTML »ç¿ë °¡´É.
°ø°³ API ¸Þ¼µå
// ÇöÀç ½Ã°£À» ±¸Á¶ÈµÈ °´Ã¼·Î ¹Ýȯ const data = $("#meetingStart").bsTimepicker("getTime"); // ¹Ýȯ: { hour24, minute, hour12, meridiem, formatted24, formatted12, isEmpty } // ÀúÀåµÈ °ªÀ» "HH:mm" ¹®ÀÚ¿·Î ¹Ýȯ (°ª ¾øÀ¸¸é null) const val = $("#meetingStart").bsTimepicker("val"); // °ª ¼³Á¤ (º¯°æ À̺¥Æ® ¹Ì¹ß»ý) $("#meetingStart").bsTimepicker("val", "16:45"); // °ª ¼³Á¤ (º¯°æ À̺¥Æ® ¹ß»ý) $("#meetingStart").bsTimepicker("setTime", "11:00"); // °ª ÃʱâÈ (º¯°æ À̺¥Æ® ¹ß»ý) $("#meetingStart").bsTimepicker("clear"); // µå·Ó´Ù¿î ¿±â / ´Ý±â / Åä±Û $("#meetingStart").bsTimepicker("show"); $("#meetingStart").bsTimepicker("hide"); $("#meetingStart").bsTimepicker("toggle"); // Ç÷¯±×ÀÎ Á¦°Å ¹× »ý¼ºµÈ DOM Á¤¸® $("#meetingStart").bsTimepicker("destroy");
4. ±âŸ Âü°í »çÇ×
¿øº» »çÀÌÆ®¿¡¼ ´Ù¿î·Îµå ¹ÞÀº ÆÄÀÏÀº vendor °¡ ´©¶ôµÇ¾î¼ Á¤»ó ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù.
¼öÁ¤µÈ ¹öÁ¯À» ÷ºÎÇØ µÎ¾úÀ¸´Ï ¼Ò½º´Ù¿î·Îµå ¹öưÀ» Ŭ¸¯ÇÏ¿© ´Ù¿î·Îµå ¹Þ¾ÆÁÖ¼¼¿ä.
demo/index2.html ÆÄÀÏÀ» ½ÇÇàÇϽðųª È®ÀÎÇϽñ⠹ٶø´Ï´Ù.
|