使用PHP strtotime格式化日期

时间:2014-01-23 14:25:14

标签: php date strtotime

我已经使用以下代码将日期提取为$ day变量。但是,PHP似乎使用默认的配置日期格式,并假设日期格式为d-m-Y。这是我的代码:

$dateformat = "m-d-Y";
$selected_date = "04-30-2013";

$day = date(d, strtotime($selected_date));

echo $day;

有没有办法让我根据$ dateformat变量中定义的格式动态地执行PHP?

由于

1 个答案:

答案 0 :(得分:2)

这里的问题是strtotime()无法解析自定义格式的日期字符串。来自documentation for strtotime()(强调我的):

  

通过查看各个组件之间的分隔符来消除m / d / y或d-m-y格式的日期:如果分隔符是斜杠(/),则假设为美国m / d / y;而如果分隔符是短划线( - )或点(。),则假定为欧洲d-m-y格式。   为避免潜在的歧义,最好在可能的情况下使用ISO 8601(YYYY-MM-DD)日期或DateTime::createFromFormat()

解决方案是使用DateTime::createFromFormat()。它可以使用自定义格式解析日期:

$dateObj = DateTime::createFromFormat($dateformat, $selected_date);
$day = $dateObj->format('d'); // => 30
相关问题