2016-09-23 98 views
-4

我的代码:PHP字符串日期返回错误的日期

echo "Strtotime : "; 

    echo date("Y-m-d",strtotime('9 March, 2015')); 

    echo "<br> mktime : "; 

    echo date("Y-m-d",mktime('9 March, 2015')); 

    echo "<br> Normal : "; 

    echo date("Y-m-d",'9 March, 2015'); 

我需要输出2015年3月9日

+0

哪里字符串'3月9日,2015'来自 - 你有没有在这个任何控制,还有什么其他格式可能你被接收? – Steve

+0

请尝试查看['mktime()'](http://php.net/manual/en/function.mktime.php)的手册。它与您尝试使用它无关。 – RiggsFolly

+0

另请参见[ 'strtotime()'](http://php.net/manual/en/function.strtotime.php)如果你使用的功能正确,它们将正常工作 – RiggsFolly

回答

0

我强烈建议您使用DateTime类此:

$date = DateTime::createFromFormat ("d M, Y", "9 march, 2015"); 
echo $date->format ("Y-m-d"); 

如果您检查PHP manual for DateTime,你可以得到一大堆关于如何等真正的好建议以进一步利用这一类。这使得在PHP中使用日期比使用旧功能要容易得多。 ;)

1

您可以使用日期时间与date_create_from_format,如果字符串的结构始终是相同的:

$d = '9 March, 2015'; 

echo date_create_from_format('d F, Y', $d)->format('Y-m-d'); 

看到一个运行的例子:如果你想显示日期https://3v4l.org/s8EHi

+0

其工作很好.....谢谢 –

0

- 蒙^ h - 一年就可以申请这个

<?php 
echo date('Y-m-d'); 
?> 
0

我想你应该使用这段代码来得到确切的日期格式。

$ orig_date =“22/09/2016”;

$ date = str_replace('/',' - ',$ orig_date);

echo date('Y-m-d',strtotime($ date));

查看更多date and time format example here