Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改格式日期_Php_Date - Fatal编程技术网

Php 更改格式日期

Php 更改格式日期,php,date,Php,Date,我有“m-Y-d”格式的日期。如何将此日期修改为“Y-d-m”格式?为此,最好的应该是功能,我可以添加旧格式和新格式,但我如何才能使它 比如我有 $date = '01-2013-13'; // "m-Y-d" 我希望收到: $newDate = '2013-13-01'; // "Y-d-m" PHP无法使用strotime()解析格式。您必须执行以下操作: function reformat($old_date) { $parts = explode('-', $old_date

我有“m-Y-d”格式的日期。如何将此日期修改为“Y-d-m”格式?为此,最好的应该是功能,我可以添加旧格式和新格式,但我如何才能使它

比如我有

$date = '01-2013-13'; // "m-Y-d"
我希望收到:

$newDate = '2013-13-01'; // "Y-d-m"

PHP无法使用
strotime()
解析格式。您必须执行以下操作:

function reformat($old_date)
{
    $parts = explode('-', $old_date);
    return $parts[1].'-'.$parts[2].'-'.$parts[0];
}
然后使用以下命令调用它:

$new_format = reformat($date);
或者,您可以使用:


您可以使用
DateTime
类,例如:

$date = new DateTime('01-2013-13');
然后使用
format()
方法,如:

$date->format('Y-m-d');
更多信息:

请参见和


要创建,您需要使用:

$newDate = date('Y-d-m');

你可以找到更多的信息

date('new format',strottime($date))
@WaleedKhan-原始日期格式是
strotime
可以解析的标准日期吗?此外,我相信
strotime('01-02-2013')
的解析方式将不同于
strotime('01/02/2013')
,第一次给出的是
2013年2月2日
,第二次给出的是
2013年1月1日
。这是一个极其基本的问题,我不能相信在网上搜索“php格式日期”没有告诉你答案。我倾向于使用
createFromFormat
而不是普通的
DateTime
构造函数,因为传入的格式是预先知道的。它也不寻常,而且可能模棱两可,因此让PHP猜测格式可能不是最好的主意。
$date = DateTime::createFromFormat('m-Y-d', '01-2013-13');
echo $date->format('Y-m-d');
$newDate = date('Y-d-m');