날짜 범위 선택기가있는 양식을 제출하고 있습니다.
양식에서 선택기의 값을 가져 오는 코드가 있습니다.이 형식은 다음과 같습니다.
01/03/2017 - 01/03/2017
또한 날짜 범위를 두 개의 변수로 나눕니다.
$one = 20/01/2017
$two = 13/03/2017
이제 이러한 변수의 날짜를 MYSQL이 사용하는 날짜로 형식화하려고합니다.
내 문제는 종료 날짜가 실패하고 항상 1970-01-01로 표시된다는 것입니다.
// Get the range from the form
$daterange = $_POST["daterange"];
// Split the range into a start and end date
list($one, $two) = explode("-", "$daterange", 2);
// Test the split worked
echo $one;
echo $two;
// Format the start date into MySQL style
$StartDate = date("Y-m-d", strtotime($one));
// Test date
echo $StartDate;
// Format the end date into MySQL style
$EndDate = date("Y-m-d", strtotime($two));
//Test date
echo $EndDate;
이 시도:
$one = '20/01/2017';
$one = str_replace('/', '-', $one);
echo date('Y-m-d', strtotime($one));
// 출력 : 2017-01-20
그 이유 는 특히이
strtotime()
노트에 대한 PHP 매뉴얼을 참조하십시오 .참고 : m / d / y 또는 dmy 형식의 날짜는 다양한 구성 요소 사이의 구분 기호를 보면 명확 해집니다. 구분 기호가 슬래시 (/)이면 미국식 m / d / y로 간주됩니다. 구분자가 대시 (-) 또는 점 (.) 인 경우 유럽 dmy 형식이 가정됩니다. 그러나 연도가 두 자리 형식으로 제공되고 구분 기호가 대시 (-)이면 날짜 문자열이 ymd로 구문 분석됩니다.
잠재적 인 모호성을 피하려면 가능한 경우 ISO 8601 (YYYY-MM-DD) 날짜 또는 DateTime :: createFromFormat ()을 사용하는 것이 가장 좋습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다