메뉴 건너뛰기

조회 수 16814 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

웹에서 날짜 및 시간 입력을 구현하려면?

웹에서 날짜 및 시간 입력은 특정 데이터의 이력 조회 화면에서 빈번히 사용된다. HTML5 상에서 사용자로부터 날짜와 시간을 입력받으려면 어떤 작업을 해야할까? HTML5에서는 기본적으로 아래와 같이 날짜와 시간을 입력 받을 수 있는 date, datetime 타입의 텍스트박스를 지원한다. 하지만 브라우저 별로 지원여부에 차이가 있어 불특정 다수의 사용자를 대상으로 화면을 개발할 경우 문제의 소지가 있다.

<input id="someDate" type="date">
<input id="someDateTime" type="datetime">

DateTimePicker 위젯을 사용하자

앞서 설명한 이유로 호환성을 고려하여 대부분 별도의 DateTimePicker 위젯 라이브러리를 사용한다. 개발환경에 따라 자체개발 또는 상용 라이브러리를 사용하기도 하는데 이 글에서는 Bootstrap 3 기반의 무료 DateTimePicker 위젯을 간단히 소개하고자 한다.

Bootstrap DateTimePicker

Bootstrap DateTimePickerBootstrap 3 기반의 무료 JavaScript DateTimePicker 위젯 라이브러리이다. 날짜와 시간을 동시에, 또는 날짜, 시간을 따로 선택하거나 입력받을 수 있다. jQuery, Moment.js 라이브러리에 종속성을 가지므로 해당 라이브러리가 먼저 로드되어야 한다.

라이브러리 로드

<!-- 라이브러리 로드 순서는 아래와 같다. cdnjs 저장소에서 라이브러리를 로드하였다. -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/3.0.0/css/bootstrap-datetimepicker.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.2/moment-with-locales.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/3.0.0/js/bootstrap-datetimepicker.min.js"></script>

HTML

HTML에서는 아래와 같이 선언한다.

<!-- DateTimePicker 위젯를 적용하기 위한 TextBox를 선언한다. -->
<input id="fromDate" type="text">
<input id="toDate" type="text">

JavaScript

JavaScript에서는 아래와 같이 작성한다.

// 선언한 TextBox에 DateTimePicker 위젯을 적용한다.
$('#fromDate').datetimepicker({
  language : 'ko', // 화면에 출력될 언어를 한국어로 설정한다.
  pickTime : false, // 사용자로부터 시간 선택을 허용하려면 true를 설정하거나 pickTime 옵션을 생략한다.
  defalutDate : new Date() // 기본값으로 오늘 날짜를 입력한다. 기본값을 해제하려면 defaultDate 옵션을 생략한다.
});

$('#toDate').datetimepicker({
  language : 'ko',
  pickTime : false,
  defalutDate : new Date()
});





사용자가 입력한 값은 아래와 같이 획득할 수 있다.

// DateTimePicker 위젯은 기본적으로 TextBox이므로 아래와 같은 일반적인 방법으로 사용자가 입력한 날짜를 획득할 수 있다.
var fromDate = $('#fromDate').val(); // '2014.01.01'
var toDate = $('#toDate').val(); // '2014.12.31'

// Sugar 라이브러리가 제공하는 Date 확장 메써드를 사용하여 간편하게 날짜 형식을 변경할 수 있다. MySQL에서 바로 쿼리 조회가 가능한 문자열 형식으로 변경해보자. Moment.js를 사용해도 된다.
var fromDate = Date.create($('#fromDate').val()).format('{yyyy}-{MM}-{dd}'); // '2014-01-01'

// Sugar 라이브러리를 이용하여 날짜를 변경하는 것도 가능하다. 역시 Moment.js를 사용해도 된다.
var toDate = Date.create($('#toDate').val()).addDays(1).format('{yyyy}-{MM}-{dd}'); // '2015-01-01'

SQL

서버 사이드로 전달된 파라메터는 아래와 같이 쿼리에 바로 전달하여 사용할 수 있다.(MySQL 기준)

SELECT *
  FROM SomeTable
 WHERE SomeDate BETWEEN :fromDate AND :toDate


  1. 새로고침(F5) 금지

    Date2018.03.28 Views6072
    Read More
  2. 날짜 및 시간 입력 구현하기, Bootstrap DateTimePicker

    Date2017.04.06 Views16814
    Read More
  3. [INPUT BOX] 텍스트박스(INPUT 박스) 가 동적으로 추가,삭제됩니다

    Date2017.02.19 Views8637
    Read More
  4. 팝업창 가운데 띄우기

    Date2016.12.23 Views6794
    Read More
  5. 셀렉트(select) change href 이벤트

    Date2016.12.23 Views5998
    Read More
  6. 셀렉트(select) change Ajax 이벤트

    Date2016.12.23 Views12911
    Read More
  7. 셀렉트(select) change 이벤트 (split)

    Date2016.12.23 Views6693
    Read More
  8. 이전, 위로 이동

    Date2016.12.23 Views5834
    Read More
  9. 우클릭 금지

    Date2016.12.23 Views5793
    Read More
  10. setTimeout() / clearTimeout() / setInterval()

    Date2016.12.22 Views8244
    Read More
  11. [단축키 설정 자바스크립트]shortcut.js

    Date2016.12.22 Views8488
    Read More
  12. 자바스크립트 모음

    Date2016.12.22 Views5872
    Read More
  13. 자바스크립트 및 CSS를 이용한 숫자만 입력받기

    Date2016.12.22 Views6439
    Read More
  14. 자바스크립트 실행 시간 측정

    Date2016.12.22 Views9013
    Read More
  15. 자바스크립트 변수,함수,객체의 표현

    Date2016.12.22 Views5453
    Read More
  16. response.setHeader

    Date2016.12.22 Views7454
    Read More
  17. 복사방지+드래그금지+마우스우클릭 금지

    Date2016.12.22 Views7990
    Read More
  18. GET방식으로 전송시 특수문자함께 전송하는 방법

    Date2016.12.22 Views12809
    Read More
  19. setTimeout 대체 스크립트 함수 (일시멈춤)

    Date2016.12.22 Views6330
    Read More
  20. 도메인 체크

    Date2016.12.22 Views6016
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved