PHP DateTime不允许使用日期格式

时间:2012-06-26 08:23:52

标签: php datetime date php-5.3

  

可能重复:
  strtotime failing on mm-dd-yyyy hh:mm

我的日期如下所示,但DateTime功能不允许:

            $start = new DateTime('13/10/2012');
            echo $start->format("Y-m-d");

它允许所有其他方法,甚至使用'10 / 13/2012',但我无法更改它,因为这是我收到日期的格式。

有什么想法吗?

由于

3 个答案:

答案 0 :(得分:1)

尝试DateTime :: createFromFormat like

$start = DateTime::createFromFormat('d/m/Y', '13/10/2012');

答案 1 :(得分:1)

您是否尝试过createFromFormat()?

$start = DateTime::createFromFormat('d/m/Y', '13/10/2012');

答案 2 :(得分:1)

根据文件,它只接受特定格式的日期,其中一个是“美国月,日,年”,如果你提供13个月,这显然会失败。

我总是尽量避免使用模糊格式的日期。主要在代码中使用“2012-10-13”,并在面向用户的日期使用“2012年10月13日”。两者都可以通过我有经验的任何日期格式化API可靠地解析。

但是当被迫使用模糊格式时,我手动解析它而不依赖于PHP的内置API,因为我完全理解它将要做什么。例如:

list($day, $month, $year) = preg_split('/[^0-9]+/', '13/10/2012');
$start = new DateTime("$year-$month-$day");