2012-04-27 2 views
0

나는 정확한 날짜를 강력하게 사용하는 php/mysql 애플리케이션을 만들고 있습니다. 데이터베이스에 삽입 된 날짜가 항상 정확하고 php/mysql 날짜 함수가 시스템 클럭에 의존하기 때문에 사용자에게 날짜 양식 필드에 현재 날짜를 입력하도록 요청한 다음 날짜 필드 필드에 현재 날짜와 비교하도록 요청합니다. 데이터베이스에 데이터를 삽입하기 전에 CURDATE()를 사용하여 데이터베이스에 저장하십시오.사용자 입력 문자열과 mysql의 curdate 비교하기

이것이 올바른 방법인지 또는 날짜 무결성을 유지하는 더 나은 해결책인지는 확실하지 않습니다.

하나는 정확해야하는 시스템 클럭에 의존 일반적 것이다

+0

왜 시스템 시계가 잘못되었을 것으로 생각하십니까? 아마도 당신은 [ntp] (http://en.wikipedia.org/wiki/Network_Time_Protocol)를 사용하여 조사하고 싶을 것입니다. – eggyal

+0

CMOS 배터리가 쉽게 고장 나고 사용자가 알지 못할 수도 있습니다. – sality

+0

CMOS 배터리는 컴퓨터의 전원이 꺼져있을 때 시스템 시계를 유지 보수하는 데 유용합니다. 일단 전원을 다시 켜면 ntp와 같은 도구 (위의 링크 참조)를 사용하면 시계를 올바른 시간으로 복원하는 데 도움이됩니다. – eggyal

답변

0

(답변-업그레이드); 그것은 의도적으로 또는 우발적으로 부정확 한 사용자 입력보다 자신의 통제하에있는 것입니다.

INSERT 문에 CURDATE()을 사용하고 Network Time Protocol 클라이언트를 실행하여 시스템 시계를 올바르게 유지하는 등의 조치를 취하는 것이 좋습니다. 대부분의 최신 운영 체제에는 기본적으로 이러한 소프트웨어가 포함되어 있지만 일반적으로 구성되어 있으며 즉시 사용 가능합니다.

시스템이 독립형이며 네트워크에서 시간을 업데이트 할 수없는 경우 다른 소스 (예 : NPL signal과 같은 라디오)의 시간 신호 수신 주기적으로 시스템 시계를 확인합니다 (특히 부팅시). CMOS 배터리를 모니터링하고 적시에 교체되도록 보장합니다. 또는 재충전 용 배터리를 사용하십시오.

+0

내 방법의 단점은 무엇입니까? – sality

+0

나는 그것이 첫 번째 단락에서 대답했다고 믿는다. - 사용자 입력은 "고의적으로 또는 우연히 부정확 할 수있다"; 또한 처음에는 질문을하기 위해 사용자 경험이 좋지 않거나 신뢰할 수없는 방법이라는 느낌이 들었습니까? – eggyal

+0

예. 그러나 제공된 링크를 확인한 후에도 응용 프로그램에서 NTP를 사용하는 방법을 이해하지 못합니다. 나는 그들 주위에 더 나은 프로그램 방식이라고 생각했다. – sality