如何将日期从一种格式转换为另一种格式?

时间:2011-03-31 18:37:30

标签: php mysql date

我在Excel工作表03-Dec-10中以此格式显示日期。因此在将其插入数据库时​​不兼容。如何将日期转换为可接受的格式?

4 个答案:

答案 0 :(得分:3)

$input = '03-Dec-10';
$date = DateTime::createFromFormat('d-M-y', $input);
echo $date->format('Ymd'); // or possibly 'Y-m-d'

这将输出20101203,这可能是你想要的。如果它不完全是您所追求的,请查看here

你也可以这样做:

$input = '20101203';
$date = DateTime::createFromFormat('Ymd', $input);
echo $date->format('d-M-y');

答案 1 :(得分:2)

虽然Jon的回答是正确的,但还有另一种选择:

$input = '03-Dec-10';
$date = date('Ymd', strtotime($input));

答案 2 :(得分:0)

如果您是从Excel本身执行此操作,则可以将此公式放入另一列

=TEXT(A2, "YYYYmmdd")

然后复制下来。这会产生兼容的8位数日期。

答案 3 :(得分:0)

对于更通用的方法,您始终可以将当前格式转储为字符串,就像使用它一样,并使用字符串操作进行子串和重组。我知道MySQL接受DATETIME字段的字符串值。

$day = substr($input, 0, 2);
$month = substr($input, 2, 3);
switch($month){
    case "Jan":
        $month = "01";
        break;
    ...
}