0

我想将我的日期时间 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 formatDate($date) {
    $arr = explode("-",$date);

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

    return $year."-".$month."-".$day;
}
于 2013-08-11T23:26:00.893 回答
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 回答