如何使用PHP将日期转换为特定格式?

时间:2010-10-06 11:06:11

标签: php datetime


我有输入框以获取mm-dd-yyyy格式的值。所以当我得到日期时,我尝试将其转换为YYYY-MM-DD格式。但它不起作用。
例如:
<? $birthdate="08-13-2000"; $date=date('Y-m-d',strtotime($birthdate)); echo $date; ?>。 输出为1970-01-01 但是如果我给了13-08-2000我得到了2000-08-13I dont want to split。因为在我的应用程序中,我在很多这样的地方使用过。但我认为strtotime甚至将它转换为unix时间戳格式无论价值如何。这就是我尝试做的原因。我理解或做什么错了?
提前谢谢。

2 个答案:

答案 0 :(得分:4)

试试这个:

$date = explode("-", "08-13-2000"); // input MM-DD-YYYY
$time = mktime(0, 0, 0, $date[0], $date[1], $date[2]); // to time
$date = date('Y-m-d', $time); // transform to Y-m-d
echo $date; // output YYYY-MM-DD
  • $ date [0]是月份
  • $ date [1]是当天
  • $ date [2]是年份

如果你在很多地方使用它,请创建一个函数():

function transformDate($input)
{
    $date = explode("-", $input);
    $time = mktime(0, 0, 0, $date[0], $date[1], $date[2]);
    $date = date('Y-m-d', $time);

    return $date;
}

echo transformDate("08-13-2000");

答案 1 :(得分:4)

strtotime()将划分短划线的日期解析为dd-mm-yyyy。您需要将生日输入为“08/13/2000”。如果您无法更改输入的预期分隔符,str_replace应该为此完成工作。

将来自php.net

的frontiermedia dot net dot au的分隔符差异归功于sam

编辑:如果您需要进行替换,请提供一些示例代码:

$birthdate = '08-13-2000';
$birthdate = str_replace('-','/',$birthdate);
$date      = date('Y-m-d',strtotime($birthdate)); 

echo $date;

否则它只是

$birthdate = '08/13/2000';
... snip ...