2010-02-23 3 views
6

jquery datepicker 플러그인을 사용하여 db에 에포크 타임 스탬프로 저장되는 날짜 필드를 설정합니다 (필드 publish_time , 테이블 스키마에 직접 매핑).jQuery Datepicker - 날짜를 시간 스탬프 (밀리 초가 아닌 초)로 포맷하려면 어떻게해야합니까?

Datepicker는 초 수가 아닌 밀리 초 단위의 에포크 만 지원합니다. 그것은 밀을 & 나노 초,하지만 초를 지원 악화.

빠른 해결 방법이 있습니까?

// Setup datepicker 
$('[name=datepicker-publish_time]').datepicker({ 
    dateFormat : 'mm-dd-yy', 
    altField : '[name=publish_time]', 
    altFormat : '@' 
}); 

참고 :
jQuery를 날짜 선택기 - http://jqueryui.com/demos/datepicker/#option-defaultDate
jQuery를 지원 날짜 형식 - http://docs.jquery.com/UI/Datepicker/formatDate

편집 : 아래 빠른 더러운 솔루션입니다 ...

$('[name=datepicker-publish_time]').datepicker({ 
    dateFormat : 'mm-dd-yy', 
    onSelect : function(dateText, inst) 
    { 
     var epoch = $.datepicker.formatDate('@', $(this).datepicker('getDate'))/1000; 

     $('[name=publish_time]').val(epoch); 
    } 
}); 
+1

나는 똑같은 문제점을 가지고있었습니다 ... 당신의 솔루션을 게시 해 주셔서 감사합니다. +1 – mpen

답변

2

사용하여 밀리 초 표현 parseInt는 정수 값을 가져옵니다. 그런 다음 초를 얻으려면 1000을 곱하면됩니다. 이것은 datepicker의 값을 직접 취하는 대신 약간의 처리 만하면됩니다.

+0

나는 최후의 수단으로 선택해야 할 것입니다. 내가 반대하는 사용자 지정 콜백을 작성해야하지만, dateFormat (예 : '(@/1000)'에서 사용할 수있는 표현이 필요합니다. –

6

답장과 주석으로 입력 했으므로 놓칠 염려가 없습니다. 이 확실하지 않은 한 클라이언트의 원시 타임 스탬프를 데이터베이스에 넣을 값으로 사용하는 것에주의해야합니다. 그것이 당신이하고 싶은 일입니다. 클라이언트가 서버와 다른 시간대에있을 수 있습니다 (일반적으로 대략 96 %의 가능성이 있습니다 :-) 그래서 "4 월 2 일"을 선택하면 "4 월 2 일"로 끝날 수도 있고 그렇지 않을 수도 있습니다 데이터 베이스.

가끔은 물론 클라이언트 시간을 원하지만 제 경험상 너무 일반적이 아닙니다.

+0

비슷한 문제가 있습니다. OP에서 datepicker를 사용하여 사용자가 기록한 날짜를 현재 서버 시간과 비교해야합니다. tadepicker가 반환하는 밀리 초 값을 저장하는 대신 날짜 문자열 (DD DD mm yy)을 기록하려고했습니다. jquery ajax를 사용하여 해당 문자열을 유닉스 타임 스탬프 서버 측으로 렌더링 한 PHP 스크립트로 보냈습니다. –

관련 문제