我有一个字符串值“27/03/2015”,我想将此字符串转换为新的日期格式。下面是我现在使用的代码。
<?php echo date("Y-m-d",strtotime("27/03/2015")); ?>
但它给出了错误的输出,如1970-01-01。
答案 0 :(得分:2)
这是因为strtotime
无法解析您的日期字符串。尝试:
<?php echo strtotime("27/03/2015"); ?>
结果应为False
。由于False
与0
相同,因此您实际上正在运行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));
?>