将php中的字符串转换为日期;ymd";

将php中的字符串转换为日期;ymd";,php,datetime,Php,Datetime,您好,请帮助我将字符串转换为日期:- 谷歌对此进行了搜索,但没有得到预期的结果 <?php $todaydate= $_GET['date']; //sending 201213 ie index.php?date=201213 $todaydate=preg_replace("/[^0-9,.]/", "", $todaydate); echo $todaydate."----------"; //prints 201213 $todaydate = date("ymd"

您好,请帮助我将字符串转换为日期:- 谷歌对此进行了搜索,但没有得到预期的结果

    <?php

$todaydate= $_GET['date']; //sending 201213 ie index.php?date=201213

$todaydate=preg_replace("/[^0-9,.]/", "", $todaydate);

echo $todaydate."----------"; //prints 201213

$todaydate = date("ymd", strtotime($todaydate));

echo $todaydate."----------"; // i want to print 131220 here but it prints today's date
?>
尝试:

更简单的解决方案:

<?php
        $todaydate  = $_GET['date']; //sending 201213 ie index.php?date=201213
        $todaydate  = preg_replace("/[^0-9,.]/", "", $todaydate);   
        $date = DateTime::createFromFormat('dmy', $todaydate);
        echo $date->format('ymd');
?>


使用此代码,您可以使用任何格式显示您的日期,因为您现在有一个有效的日期。

您似乎认为
strotime()
具有某种魔力/全知/通灵能力,可以处理您向其抛出的任何日期。它不是也不能。。。您需要向它提供一个它可以处理的日期字符串,或者使用字符串操作+mktime()来拆分日期字符串。那么到底什么是
201213
?2012年第13个月?第13天?如果我们不知道它是什么,是什么让你认为PHP可以找到它?你需要正确的格式化日期输入。请参阅格式:或任何将201213转换为131220的方法!!是20(d)12(m)13(y)吗?是的。它是20(d)12(m)13(y)
<?php
        $todaydate  = $_GET['date']; //sending 201213 ie index.php?date=201213
        $todaydate  = preg_replace("/[^0-9,.]/", "", $todaydate);   
        $date = DateTime::createFromFormat('dmy', $todaydate);
        echo $date->format('ymd');
?>