将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');
?>