Datetime创建空白结果

时间:2014-06-24 03:51:29

标签: php datetime format

好吧,我这里有这段代码

$rowValue[$y] = '16/08/2013';
$replaceThis = array("/");
$rowValue[$y] = str_replace($replaceThis, "-", $rowValue[$y]);

这将生成string数据类型的输出,' 16-08-2013'

当我尝试这样做时

$rowValue[$y] = DateTime::createFromFormat('d-M-Y H:i:s e', $rowValue[$y]);
echo $rowValue[$y];

它不起作用,或者只是显示空白......

3 个答案:

答案 0 :(得分:1)

检查您正在使用的日期时间格式。来自文档:

http://www.php.net//manual/en/datetime.createfromformat.php

' M'用于"一个月的文本表示,例如1月或9月。"你需要使用' m'或者' n'相反,它用于一个月的数字表示,带或不带前导零。"由于您的字符串表示具有前导0,因此您需要' m'。

您的代码应如下所示:

$rowValue[$y] = DateTime::createFromFormat('d-m-Y H:i:s e', $rowValue[$y]);

答案 1 :(得分:1)

你做错了你需要将当前/通过的日期格式提供给createFromFormat方法(例如你的Ymd),而不是在创建DateTime对象之后你可以使用{{1}格式化它方法。

format

DEMO

答案 2 :(得分:1)

  

我不明白为什么' d-M-Y H:i:s e'没有工作..但谢谢,它现在正在工作。还是3分钟直到我接受你的回答

它不起作用,因为你的字符串没有时间。您必须提供字符串的当前格式,即" d-m-Y"在DateTime :: createFromFormat()中。