转换为新的日期格式时输出错误

时间:2015-04-09 11:33:26

标签: php

我有一个字符串值“27/03/2015”,我想将此字符串转换为新的日期格式。下面是我现在使用的代码。

<?php echo date("Y-m-d",strtotime("27/03/2015")); ?>

但它给出了错误的输出,如1970-01-01。

5 个答案:

答案 0 :(得分:2)

这是因为strtotime无法解析您的日期字符串。尝试:

<?php echo strtotime("27/03/2015"); ?>

结果应为False。由于False0相同,因此您实际上正在运行date("Y-m-d", 0),其结果为&#34; 1970-01-01&#34; (&#34; unix epoch&#34;)。

strtotime仅识别列出here的特定日期格式。最接近您输入格式的是&#34; 27-03-2015&#34; (&#34;日,月和四位数年份,带点,标签或短划线&#34;)。

答案 1 :(得分:1)

试试这个

<?php echo date("Y-m-d",strtotime(str_replace('/', '-',  YOUR DATE )))); ?>

答案 2 :(得分:0)

在上述情况下/分隔符无效(因为日期将评估为日期3和月27) 你可以使用 -

echo date("Y-m-d",strtotime("27-03-2015"));

答案 3 :(得分:0)

这是简单的解决方案

$date = '27/03/2015';
$date = str_replace('/', '-', $date);
echo date('Y-m-d', strtotime($date));

答案 4 :(得分:0)

我猜“/”是不允许的,或者,我应该说,作为strtotime的参数无法识别。

<?php 
$dateString = "27/03/2015";
//now let's check if the variable has a "/" inside of it. 
//If it does, then replace "/" with "-". 
//If it doesnt, then go with it. 
//"." also accepted for strtotime as well.
$dateString = (strpos($dateString,"/") ? str_replace("/","-",$dateString) : $dateString);
echo date("Y-m-d",strtotime($dateString)); 
?>