我試圖將這個日期格式(以PHP格式):「dd/mm/yyyy」,例如18/08/2011,轉換爲「j M Y」,應該輸出類似這樣的內容,「2011年8月18日」。如何在PHP中將此日期(dd/mm/yyyy)格式化爲(j M Y)?
如果有人可以幫忙,將不勝感激, 謝謝。
我試圖將這個日期格式(以PHP格式):「dd/mm/yyyy」,例如18/08/2011,轉換爲「j M Y」,應該輸出類似這樣的內容,「2011年8月18日」。如何在PHP中將此日期(dd/mm/yyyy)格式化爲(j M Y)?
如果有人可以幫忙,將不勝感激, 謝謝。
<?php
$str = "18/08/2011";
preg_match("|(.*?)/(.*?)/(.*?)|", $str, $match);
$str = $match[2]."/".$match[1]."/".$match[2];
echo $your_format = date("j M Y", strtotime($str)); //strtotime() expects mm/dd/yyyy
//returns 18 Aug 2008
?>
這裏有一種方法:
$oldDate = "18/08/2011";
$dateArr = explode("/", $oldDate);
$newDate = date("j M Y", mktime(0,0,0,$dateArr[1],$dateArr[0],$dateArr[2]));
將正常運行是。請注意0中列出的$dateArr
元素的順序。
strtotime()很好,但由於系統的日期配置,它有運行返回意外結果的風險。爲了更加安全,我傾向於使用查找數組。
<?php
function dateReformat($date)
{
$monthList = array
(
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
);
$tmp = explode('/', $date);
$month = $monthList[ $tmp[1]-1 ];
return "{$tmp[0]} {$month} {$tmp[2]}";
}
echo dateReformat('12/05/1980');
如果您使用PHP> = 5.3,您可以嘗試DateTime類。
<?php
$dateString = '18/08/2011';
$dt = DateTime::createFromFormat('d/m/Y', $dateString);
echo date('d M Y', $dt->getTimestamp());
?>
丹尼,你必須接受任何問題,如果你找到答案的 – chhameed
可能重複[PHP轉換一個日期到另一個日期格式(http://stackoverflow.com/questions/2167916/php-convert-one-date -into-another-date-format) – NikiC