2016-06-21 1 views
1

나는 strttotime을 사용하여 주어진 날짜에 다음 monday을 얻으려고하고 있지만 출력은 Jan 1970에서 출력됩니다. 아래는 다음 월요일의 날짜를 위해 작성된 코드 줄입니다.이 코드는 here에서 가져 왔습니다. 아무도 왜 이것이 일어나고 있는지 이해할 수 있도록 도와 주시겠습니까? 미리 감사드립니다.php - strtotime 날짜 사용 1970 년대에

코드 :

$date_init = date('Y m d', strtotime('next monday', strtotime('2016 06 22'))); 

예상 출력 :

2016 06 27 

실제 출력 :

1970 01 05 

답변

5

문자열 2016 06 22은 매뉴얼에 따라 유효한 날짜 형식이 아닙니다. 하이픈을 추가하십시오 : 당신은 여기에 모든 유효한 날짜 형식을 찾을 수 있습니다

$date_init = date('Y m d', strtotime('next monday', strtotime('2016-06-22'))); 

: http://php.net/manual/en/datetime.formats.date.php

2

이 시도 :

$date_init = date('Y m d', strtotime('next monday', strtotime('22-06-2016'))); 

'2016 06 22'는 언급 된 형식 중 하나의 형식으로 작성되어야합니다 here

2

2016 06 02이 가능 날짜 형식as described in the PHP docs하지 하나입니다. 이러한 이유 때문에 에 대한 내부 호출은 주어진 시간 문자열을 파싱 할 수없는 경우 FALSEas defined in the docs을 반환합니다. 이 이후

$now 파라미터 외측 strtotime 대한 유효한 입력되지 않고 그것의 계산을위한 기초로서, IT는 에포크을 얻어, 또는 1970 년 1 월 1 일. 결과적으로, 1 월 1 일 이후에 다음 월요일로 끝날

이 해결할 초기 날짜로부터 문자열을 공간을 제거 1970

:

$date_init = date('Y m d', strtotime('next monday', strtotime('20160622')));