2017-12-14 1 views
0

날짜 문자열이 "Tue, February 10, 2018"이고 다른 날짜 형식을 2018-10-02로 변환해야합니다. 그러나 그것은 2017을 보여준다. 왜?php 날짜 형식을 다른 형식으로 사용 하시겠습니까?

<?php 

    $checkin = "Tue, 2 October, 2018";  
    echo date("Y-m-d", strtotime($checkin)); 

    //it show 2017-10-03 but i need 2018-10-02 

    ?> 
+0

당신은 createFromFormat 기능을 사용하여 더 나을 것 - 참조 php docs http://php.net/manual/en/datetime.createfromformat.php – jeff

답변

2

귀하의 형식은 사용자 정의이며 구문 분석 할 수없는 문자는 strtotime입니다. 당신은 그것을 파싱 할 수 있어야합니다. 여기에 당신이 (DEMO를) 할 수있는 방법은 다음과 같습니다

$checkin = "Tue, 2 October, 2018";  
$checkinDate = explode(',',$checkin); 
$strDate = $checkinDate[1].$checkinDate[2]; 
echo date("Y-m-d", strtotime($strDate)); 

이 코드는 ,에서 문자열을 나누기 다음 날 무시하고 마지막 두 부분을 결합한다.

아니면처럼,이 형식을 구문 분석 date_create_from_format()을 사용할 수 있습니다() :

$checkin = "Tue, 2 October, 2018"; 
$checkin = date_create_from_format('D, j F, Y', $checkin); 
echo date_format($checkin, "Y-m-d"); 
1

입력 형식이 잘못되었습니다. 두 번째 쉼표를 제거하십시오. 읽어야합니다

Tue, 2 October 2018 
1

10월 후 제거, 쉼표와 화를 제거

관련 문제