2011-09-01 5 views
3

PHP 5.3에서 타임 스탬프를 정의하는 새로운 방법이 있습니까? PHP 5.3에서 타임 스탬프를 정의하는 새로운 방법?

strtotime('0000-00-00');

5.3 이전과 -62169984000 PHP 5.3에서 PHP 0 날짜 (1970년 1월 1일)을 반환합니다. 그리고 30/11/-0001 같은 데이트 !!

그러나 설명서에 대한 설명을 찾을 수 없습니다. 어떤 생각이 바뀌 었거나 뭔가 빠졌는가?

+0

왜이 작업을 수행해야합니까? 어떤 종류의 날짜가 "0000-00-00"입니까? –

+0

유효하지 않은 날짜가 예기치 않은 값을 반환한다는 것에 놀라지 않습니다. 너 정확히 뭘 하려구? – JJJ

+0

@ 주 : 음,'strtotime ('2011-09-00')'은 "반올림"으로 작동합니다. 아마도 그는 연말의 마지막 날을 기대하고 있었을 것입니다 -1. 물론 엄밀히 말하면 올해에는 '0'이 없었습니다. –

답변

5

설명은 여기에 있습니다 :

물론 이죠,하지만 한 strtotime() 긴 무효 월, 일을 처리했다 효율적으로 그들을 "반올림"에 의해()에서는 mktime와 같은 방법으로 값 : https://bugs.php.net/bug.php?id=46597

은 인용 유효한 값 : 매월 0 일이 이전 달의 마지막 날이되고, 0 번째 달은 전년도의 마지막 달이됩니다. 그 해석을 감안할 때, 0000-00-00은 분명히 1 년에 11 월의 마지막 날이됩니다 (기원전 2 년으로 더 잘 알려짐).

동작이 변경 될 가능성은 없습니다. checkdate()는 잘못된 날짜를 스니핑하는 훨씬 더 좋은 방법이며 strtotime에서이 동작에 의존하는 사람들을 위해 역효과가 될 수 있습니다).

+0

+1. 내 앞에 약 60 초가있어 .-) – DaveRandom

관련 문제