php - 在 PHP 中将 '04-17-2013' 转换为 '2013-04-17' 的最佳方法?

标签 php date datetime

我有以下内容:

$order_date = '04-17-2013';
echo $order_date . "\n";

$order_date = date_create($order_date);
$order_date = date_format($order_date, 'Y-m-d');

echo $order_date;

输出是:

before = 04-17-2013
after  = 

我以为我可以正常工作,但一定是错了,因为它现在不工作了!

更新了使用的解决方案

$date = DateTime::createFromFormat('m-d-Y', $order_date);
$new_date = $date->format('Y-m-d');

最佳答案

$new_date = date('Y-m-d', strtotime($order_date));

这行不通。 m/d/yd-m-y 格式的日期通过查看各个部分之间的分隔符来消除歧义:如果分隔符是斜杠 (/),则美国假定 m/d/y;而如果分隔符是破折号 (-) 或点 (.),则采用欧洲 d-m-y 格式。 (source)

$new_date = date_create_from_format('m-d-Y', $order_date);

$date = DateTime::createFromFormat('m-d-Y', $order_date);
$new_date = $date->format('Y-m-d');

See it in action

或在 PHP 5.5+ 中

$new_date = (DateTime::createFromFormat('m-d-Y', $order_date))->format('Y-m-d');

关于php - 在 PHP 中将 '04-17-2013' 转换为 '2013-04-17' 的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16049462/

相关文章:

c# - 将日期时间字符串列表转换为日期时间值列表

php - 低效的 MySQL 数据库/语句减慢 PHP/JS 系统

IE8 中的 JavaScript 日期未定义/NaN

PHP 日期时间错误?

Python CSV : Grab all values in row with conditions for time values

php - 使用 strtotime() 计算时差(以小时和分钟为单位)

php - Laravel 使用自定义验证消息

php - 从多个条件中删除

php - Doctrine 2.5 意外的关联获取行为 [Symfony 3]

java - java中的日期转换问题