2013-03-25 4 views
1

jQuery를 사용하여 VBScript를 Javascript로 변환하려고하는데 서버 시간과 현재 시간을 비교합니다.jQuery를 사용하여 서버 시간과 현재 시간을 비교하십시오.

var hdServerTime = $("#hidServerTime"); 

if (!IsDate(hdServerTime)) { 
    hdServerTime.val(new Date()); 
    alert(hdServerTime.val()); 
} 

var dateSelected = $("#hidServerTime").val(); 
var hdTimeOffset = $("#hidTimeOffset").val(); 
hdTimeOffset = DateDiff(Date.now, new Date(dateSelected)); 

function DateDiff(first, second) { 
      return (second - first)/(1000 * 60 * 60 * 24) 
     } 
+0

jQuery를 마술처럼 모든 일을하지 않습니다 (docs for jQuery .val() 참조)를 사용합니다. 실제로 몇 가지 생각을해야 할 것입니다. –

+0

http://www.datejs.com/ –

+0

을 확인하십시오. 함수로 전달하는 대신 *'Date.now()'를 * 호출하려고합니다. – Bergi

답변

0

자바 스크립트가 클라이언트 측 스크립트 언어입니다, 당신은 PHP와 같은 서버 측 스크립트와이를 지원하지 않는 서버 시간에 액세스 할 수 없습니다 같은 :

If Not IsDate(frmLogDetail.hidServerTime.value) Then 
frmLogDetail.hidServerTime.value = Now 
End If 
frmLogDetail.hidTimeOffset.value = DateDiff("s", Time, TimeValue(frmLogDetail.hidServerTime.value)) 

내가 가진 무엇 . Date.now()은 1970 년 1 월 1 일 00:00:00 UTC 이후 클라이언트 측 시간을 밀리 초 단위로 제공합니다.

코드가 혼란 스럽습니다 (PHP 구현을 수행하고 있다고 가정합니까? 숨겨진 div/span?). 그래서 나는 내가 할 일에 대해서 대답 할 것입니다.

서버 측 시간을 얻는 한 가지 방법은 PHP를 사용하여 페이지를 제공하고 실제로 자바 스크립트 클라이언트 측을 실행하기 전에 자바 스크립트에서 변수를 전역 적으로 정의하는 것입니다. 당신은 페이지의 <head> 태그 (예를 들어) 이런 짓을 할 것이다 :

<?php 
    echo "<script type='text/javascript'> 
     var servertime = ".time()."; 
     </script>" 
?> 

그리고 자바 스크립트에서이 같은 비교 대상의 변수 servertime해야합니다 :

//Get time difference in milliseconds 
var timeDifference = Date.now() - servertime; 

이 구현을 jQuery가 전혀 필요 없기 때문에 멋지다. 페이지에 요소를 숨겨서 SEO 문제를 다루지 않는다면 ...

0
var hdTimeOffset = $("#hidTimeOffset").val(); 
hdTimeOffset = …; 

jQuery로 값을 지정하는 방법이 아닙니다. 이 코드는 변수 hdTimeOffset에 할당합니다. DOM에 대한 마법 참조가 아닙니다. 대신,

var hdTimeOffset = …; 
$("#hidTimeOffset").val(hdTimeOffset); 

관련 문제