【问题标题】:Converting month name in given date into month number [duplicate]将给定日期的月份名称转换为月份编号[重复]
【发布时间】:2012-08-29 20:26:33
【问题描述】:

可能重复:
PHP date format converting

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

【问题讨论】:

  • 我尝试使用日期(“Y-m-D”,strtotime(“2012-september-09”))将 2012-september-09 转换为 2012-09-09。但这会返回 2012-09-01。所以请告诉我正确的转换方法
  • 有很多类似的问题询问如何格式化日期。请在提问之前先研究一下。
  • echo DateTime::createFromFormat('Y-M-d', '2012-september-09')->format('Y-m-d');

标签: php


【解决方案1】:

你可以试试strptime

$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');

这是Codepad

【讨论】:

  • 条件是你没有Windows平台。但这是一个很好的解决方案。
【解决方案2】:

试试这个

Change 

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

 To

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

【讨论】:

  • k.. 它返回月份数,如何从上面的php函数返回年份和日期
  • 这将给出 2012-09-01。 OP 已经在 cmets 中这么说了。
  • 是的,我已经检查过了。请将字符串更改为
  • 我的假设是 OP 无法更改字符串,因为如果他/她可以,他/她可以简单地将其更改为所需的输出格式,而不必要求编程解决方案。跨度>
  • @Ialith 如果这个答案解决了你的问题,为什么你首先要问这个问题?如果解决方案是更改格式,您的问题绝对没有意义。
猜你喜欢
  • 2011-06-04
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
  • 2019-12-26
  • 1970-01-01
相关资源
最近更新 更多