클라이언트가 모바일 앱에 기사를 추가 할 수 있도록 기본 CMS를 설정하는 중입니다. CMS는 PHP로 코딩되어 있으며 JSON을 사용하여 콘텐츠를 모바일 앱에 전달합니다.strtotime 날짜 유효 기간이 유효하지 않은 날짜로 바뀜
이제 내 문제는 특정 날짜에 기사를 게시하는 옵션이 있기 때문에 유효한지 유효성을 검사하고 싶습니다.
그래서 가능성을 테스트하기 위해 작은 스크립트를 만들었습니다. 내 스크립트입니다 날짜가 유효한지 확인하기 위해 strtotime()
을 사용하고 있습니다 :
<?php
$date[] = '2011-31-01';
$date[] = '2011-02-31';
foreach($date as $str) {
if(strtotime($str) == false) {
$result[] = '<p>[' . $str . '] Resulted in an <span style="color: red;">Error.</span></p>';
} else {
$result[] = '<p>[' . $str . '] Resulted in <span style="color: green;">Success.</span></p>';
}
}
foreach($result as $return) {
echo $return;
}
?>
지금 내 문제는되지 않을 때 분명히 31st February 2011
이 유효한 반환 된 날짜 2011-02-31
입니다. 그래서 제 질문은 왜 그렇게합니까? 날짜가 유효하고 존재하는지 확인하는 더 나은 방법이 있습니까?
미리 감사드립니다.
가능한 복제본 [strtotime()은 기존 날짜가 아닌 다른 날짜를 다른 날짜로 변환합니다.] (http://stackoverflow.com/questions/7583579/strtotime-converts-a-non-existing-date-to-another-date) – hakre
'2011-01-31'은'31 '로 구문 분석됩니다. January 2011' (나에게 맞을 것입니다.) ... 그 외에는,'strtotime'은 날짜의 유효성을 검사하는 것이 아니라, 형식에 관계없이 가능한 가장 좋은 방법으로 날짜를 파싱하려고합니다. – poke
@hakre 내 문제가 다른 것으로 변환되는 날짜와 아무 관련이없는 것은 중복되지 않습니다. 어쨌든 고마워. – RobFos