2013-03-08 4 views
2

이것은 PHP의 질문입니다. 내 로컬 서버에 내 호스팅 웹 사이트에이 코드를PHP mktime() vs date()

echo date("d-m-y h:i:S"); 

을 테스트 할 때 예상대로 는 (이 두 가지가 서로 다른 시간대가) 그들은 서로 다른 날짜 값을 반환합니다. 하지만이 코드

echo mktime(); 

을하려고 할 때 시간대가 무엇이든 모두 servers.Does에서는 mktime() 표준 시간대 1970 시간 (초)을 반환에 같은 결과를 볼 수? 당신의 답 documentation으로

+2

기본적으로'date()'는 서버의 현지 시간대 설정을 사용하며, mktime()은 GMT를 사용합니다. – Sammitch

답변

0

documentation :

한다 mktime - 초기 질문이 합성 날짜

에 대한 유닉스 타임 스탬프를 가져 오기 :) (

가한다 mktime합니까 (초)을 반환 표준 시간대 인 1970 년부터 시간대가 무엇이든간에

옙.

+0

그래서 mktime이 안전하지 않기 때문에 호스트에서 다른 곳으로 웹 사이트를 이동하더라도 mktime을 안전하게 사용할 수 있습니다. 그러나 date()는 신뢰할 수 없습니다. 로컬 존에 의존하고 있습니까? – user1800007

+1

@ user1800007 예. 당신은'mktime()'에 의존 할 수있다. (서버가 hostler에 의해 올바르게 구성되었다고 가정합니다.) – poitroae

+0

오, 내 말은 당신이 무슨 뜻인지 알 것 같습니다. 호스트 관리자가 "시간대"에 맞게 시간을 올바르게 설정해야한다는 것을 의미합니다. mktime()은 나머지는? 시간대를 잘못 설정하면 mktime()이 잘못된 값을줍니다. – user1800007

0

에 대한

덕분에 mktime() 반환 date() 동안 (두 번째 인수없이) GMT 시간으로 시대의 시작에서 초 로컬 시간대의 시간을 반환을 언급한다. 에서

1

mktime()은 지정된 인수에 해당하는 유닉스 타임 스탬프를 반환합니다. 이 타임 스탬프는 이며 유닉스 Epoch (1 월 1 일 1970:00:00 GMT) 사이의 초 수를 포함하는 긴 정수이며 지정된 시간입니다.

date() 주어진 소인 정수 또는 타임 스탬프가 부여되어 있지 않은 경우 금회 (로컬 타임 존)을 이용하여 소정 포맷에 따른 문자열 포맷 문자열을 반환한다.

+0

"... Unix Epoch (1970 년 1 월 1 일 00:00:00 GMT)와 지정된 시간 사이의 초 수." 시간이 지정 되었습니까? 나는 mktime을 다음과 같이 사용한다 : mktime(). 아무것도 지정하지 않고. – user1800007

+1

당신은 문서를 읽는 것을 귀찮게하지 않았습니다 .. '인수는 오른쪽에서 왼쪽으로 순서대로 생략 될 수 있습니다; 이렇게 생략 된 모든 인수는 현지 날짜와 시간에 따라 현재 값으로 설정됩니다. ' – SeanWM

+0

죄송합니다. 응답 한 후 확인했습니다. 내 실수입니다. 답변을 주셔서 감사하지만, 문서로 인해 혼란 스러웠습니다. 현지 날짜 및 시간 "나는 그것이 GMT를 표준 매개 변수가 아닌 현지 날짜 및 시간으로 사용하는 매개 변수를 생략하면 의심 스럽습니다. 이는 내 질문의 두 번째 부분과 모순됩니다. – user1800007