PHP:日期格式 - MM/DD/YY > YYYY/MM/DD

PHP: Date Formatting - MM/DD/YY > YYYY/MM/DD

您好,我正在尝试解决一些 PHP 日期格式问题。我遇到的问题是在我尝试格式化后随机返回意外结果,而不是正确的日期。

我将日期 MM/DD/YY 作为字符串传入,我想知道如何将其转换为 YYYY/MM/DD。当它尝试转换日期时,它就像停留在同一个地方但试图转换单个部分,因此 MM (12) 转到 YYYY (2012)


这是我一直用来尝试更改格式的代码部分:

$date = $_GET["datepicker"];
$arr[$i] = strftime("%Y-%m-%d", strtotime($date));

$arr[$i] 只是我将其放入其中的数组,应该不会影响任何东西。 我还尝试了以下方法:

$arr[$i] = date("Y-m-d", strtotime($date));

谢谢,
基兰

您可以使用 mktime:

$date = $_GET["datepicker"];
list($month, $day, $year) = explode('/', $date);
$timestamp = mktime(0, 0, 0, $month, $day, $year);

$output = date('Y-m-d', $timestamp)

获得所需输出的最简单方法是使用 the DateTime class,特别是:DateTime::createFromFormat:

$date = DateTime::createFromFormat('m/j/y', $_GET['datepicker']);
//now to get the outpu:
$arr[$i] = $date->format('Y-m-d');

还有一个程序风格的替代方案:

$date = date_create_from_format('m/j/y', $_GET['datepicker']);
//note, date_create_from_format returns an instance of DateTime
$arr[$i] = date_format($date, 'Y-m-d');//same as $date->format('Y-m-d');