0

datetime 08/11/2013 を 2013-08-11 に変換したいと思います。

私はこれを試していましたが、想定どおりに機能しませんでした。

$date = $_POST['gt_date']; // Getting 08/11/2013
$date = explode("/", $date); // Exploding the / character into array
$datetime = $date[2] + '-' + $date[0] + '-' + $date[1];

何か案は?

4

4 に答える 4

3

に渡してDateTimeフォーマットすることができます。

$date = new DateTime('08/11/2013');
echo $date->format('Y-m-d');
于 2013-08-11T23:24:57.953 に答える
1

+ が何をするのかわかりませんが、コードを次のように変更するとうまくいきます:

$datetime = $date[2].'-'.$date[0].'-'.$date[1];

編集: + はそれらを一緒に追加していたと思います。あなたが得ていた結果は2032年でしたか?

于 2013-08-11T23:22:53.320 に答える
0

コードを繰り返す必要がないように、フォーマットを返す関数を次に示します。

function makeDateFormat($date) {
    $date = $_POST['gt_date'];
    $date = explode("/",$date);
    $new_date = array($date[2], $date[0], $date[1]);
    $date = implode("-",$new_date);
    return $date;
}
于 2013-08-11T23:20:14.760 に答える
0

この問題は「+」演算子が原因で発生します。「.」に変更してください。オペレーター。この機能を使用できます:

function formatDate($date) {
    $arr = explode("-",$date);

    $year  = $arr[2];
    $month = $arr[1];
    $day   = $arr[0];

    return $year."-".$month."-".$day;
}
于 2013-08-11T23:26:00.893 に答える