2012-01-26 2 views
1

이것은 매우 사소한 일이지만, 필자의 삶에서 좋은 문서를 찾을 수는 없다. 클라이언트 측에서 서버로 타임 스탬프를 보내야하는 AJAX 이벤트 설정이 있습니다. 서버 스크립트 (PHP)는 전달 된 타임 스탬프를 mysql 테이블의 CURRENT_TIMESTAMP에 대해 검사하고 결과에 따라 동작합니다.MySQL에 대해 확인하는 JavaScript 타임 스탬프

내 문제는 mysql 타임 스탬프에 필적 할 클라이언트 페이지의 JavaScript에서 타임 스탬프를 만들어야한다는 것입니다.

답변

1

알렉스는 거의

잘못 유일한 것은 JS 타임 스탬프는 밀리 초이며, UNIX 타임 스탬프 초 있다는 것입니다했다. 따라서 JS 타임 스탬프를 1000으로 나눌 필요가 있습니다.

var unixNow = Math.round((new Date().getTime())/1000); 
+0

두 분 모두 도와 줘서 고마워요! – lampwins

+0

젠장, 곱셈을 실수로 잘못 했니? 그게 내가 공휴일로 일하는 것에 대한거야. – alex

1

다음

var secondsFromEpoch = ~~(+new Date/1000); 

.. 그리고 ... 그냥 자바 스크립트에서 신기원으로부터의 초를 전송에 대한 귀하의 질의에 ...

WHERE UNIX_TIMESTAMP(`datetime`) == :secondsFromEpoch_passed_from_JavaScript 

을 변경하는 방법?

+0

도움에 감사드립니다! – lampwins

+0

알렉스의 까다로운 JS에 대한 설명입니다. '+ new Date'는'new Date(). getTime()'과 동일합니다.'+'는 날짜를 숫자로 변환합니다. '~~'는'Math.round()'를 구현하는 또 다른 방법이며, 더 빠르다고 들었습니다. –

+0

@JuanMendes 설명에 감사드립니다. 그러나'+'는'Date'의'valueOf()'를 호출하여'Number'를 반환합니다. 둘째로'~~', 또는 double invert bits는 함수 적으로'Math.floor()'와 같다. – alex