Php 将给定日期中的月份名称转换为月份编号

Php 将给定日期中的月份名称转换为月份编号,php,Php,可能重复: 我有一个类似于2012-09-09的日期。如何使用PHP将其转换为2012-09-09 Change <?php echo date('Y-m-d',strtotime('2012-september-09'));?> To <?php echo date('Y-m-d',strtotime('09-september-2012'));?> 更改 到 您可以尝试使用strtime $date = '2012-september-09'; $str

可能重复:

我有一个类似于2012-09-09的日期。如何使用PHP将其转换为2012-09-09

Change 

<?php echo date('Y-m-d',strtotime('2012-september-09'));?>

 To

<?php echo date('Y-m-d',strtotime('09-september-2012'));?>
更改
到

您可以尝试使用
strtime

$date = '2012-september-09';
$strp = strptime($date, '%Y-%B-%d');
$ymd = sprintf('%04d-%02d-%02d', $strp['tm_year'] + 1900, $strp['tm_mon'] + 1, $strp['tm_mday']);
$new_date = new DateTime($ymd);
echo $new_date->format('Y-m-d');

这里有一个

我尝试将2012-09年9月转换为2012-09-09年,日期为(“Y-m-D”,标准时间为(“2012-09年9月”)。但这将返回2012-09-01。因此,请告诉我正确的转换方法有几十个类似的问题询问如何格式化日期。在提问之前,请仔细研究它们。
echo DateTime::createFromFormat('Y-M-d','2012-9-09')->format('Y-M-d')k。。它返回月份号,如何从上面的php函数返回年份和日期,这将给出2012-09-01。OP已经在评论中这么说了。是的,我已经检查过了。。请更改字符串,否则OP将无法更改字符串,因为如果他/她可以更改字符串,他/她只需将其更改为所需的输出格式,而无需要求编程解决方案。@Ialith如果此答案解决了您的问题,为什么您首先要问这个问题?如果解决方案是更改格式,则您的问题毫无意义。条件是您没有Windows平台。但这是一个很好的解决方案。