2012-07-24 5 views
3

캘린더에서 날짜를 선택하기 위해 실행되는 코드가 있지만, 언급 된 캘린더에서 서버의 코드로 current_date을 설정하고 싶습니다. client_dateserver_date을 비교하는 기능이 있습니다.고객 날짜와 서버 날짜를 어떻게 비교합니까?

+5

당신은 문자열을 날짜로 전달하고이를 양쪽의 적절한 Date 객체로 변환하여 많은 고통을 덜어줍니다. – jbabey

+0

그 목적이 무엇입니까? 실제 사례를 해결할 수있는 수많은 방법이있을 수 있습니다. –

+0

어쨌든 닉네임 Balasaheb은 왜 그렇습니까? ;) (친구를 의미하는 아랍어로 당신의 이름을 번역하려고하여 농담) – GingerHead

답변

2

그럴 수도 있습니다. 다른 제안으로, 당신은 두 가지 이유로 문자열로 날짜를 변환해야합니다 : 버그

  • "현재 시간"검색 할 때

    1. 쉽게 읽을 수/이해 항상 클라이언트와 서버
    사이 다른

    클라이언트에 현재 날짜를 보내려면 숨겨진 양식 필드 나 AJAX 요청 또는 웹 서비스 또는 REST 또는 JSON 또는 JSONP를 사용할 수 있습니다. 또는 ... 음, 너무 많은 방법이 있습니다.

    하는 날짜의 비교 Date 개체를 문자열로 변환 한 후 (자바 스크립트에서 자바 compareTo()<, ==, >을)를 비교하는 일반적인 방법을 사용합니다.

  • 0

    서버 스크립트의 현재 날짜를 템플릿에 전달하면 페이지가 렌더링 될 때 자바 스크립트가 액세스하고 비교할 수 있습니다. 이것은 명백한 문제가 있습니다. 사용자가 다음 날까지 페이지를 열어두면 날짜가 오래된 것입니다.

    다른 방법은 백 엔드에 대한 비동기 호출을 사용하여 거기에서 날짜를 가져 오는 것입니다.

    1

    당신은 다음과 같은 방법을 사용하여 작업을 수행 할 수 있습니다

    자바

    public class YourJavaClass{ 
    public static String getServerDate() 
    { 
        Calendar cal = Calendar.getInstance(); 
    
        return cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.MONTH) + "-" + cal.get(Calendar.DATE); 
    } 
    } 
    

    에서 JSP

    $('input.datepicker').datepicker(
    { 
        minDate : new Date(<%out.print(YourJavaClass.getServerDate());%>) 
    }); 
    
    +0

    따옴표가 필요하지 않습니까? –

    +0

    여기에 사용 된 datepicker는 jquery-ui datepicker – Gunhan

    0

    가장 쉬운 방법은 밀리 초에 대화와 함께 두 날짜를 비교하는 것입니다에서. 두 언어 모두 방법을 제공합니다.

    자바 스크립트 :

    <script type=""> 
        var myDate = new Date(); 
        var milliseconds = myDate.getTime(); 
    </script> 
    

    자바 (JSP) : 여기

    <script type="text/javascript"> 
    <%! 
        Date myJavaDate = new Date(); 
        long myJavaMilliseconds = 0L; 
        myJavaMilliseconds = myJavaDate.getTime(); 
    %> 
    var myJavaMillisondsInJs = <%= myJavaMilliseconds %>; 
    </script> 
    

    /* 넣어 코드는 그 날짜 사이의 비교 */

    비교하려는 경우 dateas 서버 측에서 Ajax 또는 양식을 통해 서버에 javatime을 제출해야합니다.

    +0

    입니다. 밀리 초를 사용하는 것은 동일한 오프셋 (1.1.1970)을 기반으로하기 때문에 좋습니다. 주어진 시점에서 클라이언트와 서버의 값이 달라 지므로 이는 잘못된 생각입니다. 그리고 시간대와 DST를 잊지 마십시오. –

    +1

    @Aron : 네 말이 맞아. 내가 그 질문을 이해할 수있는 한 그는 서버 측과 클라이언트 측 시간의 차이를 안다 (나는 그가 그것을 알고 있다고 생각한다 ^^). – reporter

    관련 문제