2014-01-05 119 views
0

你好,请帮我把字符串转换成日期: - 用Google搜索关于这一点,但没有得到期望的结果转换字符串到日期在PHP中的“年月日”

<?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 
?> 
+1

你似乎认为'strtotime()'是某种神奇/全知/通灵,并且可以处理任何你投掷它的日期。它不是也不能......你需要为它提供一个日期字符串它可以**处理,或者使用字符串操作+ mktime()来分割你的日期字符串。并且确切** ** 201213是什么**? 2012年第13个月?第13天?如果** WE **不能告诉它是什么,是什么让你认为PHP可以弄清楚它? –

+1

你需要正确的日期输入.SEE格式:http://www.php.net/manual/en/function.date.php –

+0

或任何方式将201213转换为131220! –

回答

1

尝试mktime

<?php 
    $todaydate = $_GET['date']; //sending 201213 ie index.php?date=201213 
    $todaydate = preg_replace("/[^0-9,.]/", "", $todaydate); 
    echo $todaydate."----------"; //prints 201213 

    $d = substr($todaydate, 0, 2); 
    $m = substr($todaydate, 2, 2); 
    $y = substr($todaydate, 4, 2); 
    $t = mktime (0, 0, 0, $m, $d, $y); 

    $todaydate = date("ymd", $t); 
    echo $todaydate."----------"; // i want to print 131220 here but it prints today's date 
?> 
1

更简单solutoin:

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

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

相关问题