【问题标题】:How to convert the date into paticular format using PHP?如何使用 PHP 将日期转换为特定格式?
【发布时间】:2010-10-06 11:06:10
【问题描述】:


我有用于获取 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-13.I dont want to split。因为在我的应用程序中,我在很多地方都使用过这样的。但我认为strtotime将它转换为unix时间戳格式,即使是任何值。这就是我的原因尝试做喜欢。我理解或做错了什么?
提前致谢。

【问题讨论】:

标签: php datetime


【解决方案1】:

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

感谢来自 php.net 的 frontiermedia dot net au 上的 sam 的分隔符差异

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

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

echo $date;

不然就这样了

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

【讨论】:

    【解决方案2】:

    试试这个:

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

    【讨论】:

    • 你不想explode('-','08-13-2000'); ?
    • +1(尽管有错字!)因为这比相信 strtotime 的变幻莫测要可靠得多。
    • @lonesomeday 我同意,虽然发现一些 strtotime 的更多...有趣的模糊是很有趣的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多