2016-09-23 97 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