2017-12-14 5 views
0

私は日付文字列 "Tue、2 October、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

を削除 - 参照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)); 

このコードは,で文字列を分割し、その日を無視し、最後の2部に参加します。

それとも、()のように、このフォーマットを解析するために、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

入力形式が間違っています。 2番目のカンマを削除します。読む必要があります

Tue, 2 October 2018 
1

削除、10月後にコンマとあなたはcreateFromFormat機能を使用したほうが良いでしょう火、