我的日期格式爲「m-Y-d」。我如何修改這個日期來格式化「Y-d-m」?對於這個最好的應該是功能,我可以添加舊格式和新格式,但我怎麼能做到這一點?更改格式日期
例如我有
$date = '01-2013-13'; // "m-Y-d"
我想接收:
$newDate = '2013-13-01'; // "Y-d-m"
我的日期格式爲「m-Y-d」。我如何修改這個日期來格式化「Y-d-m」?對於這個最好的應該是功能,我可以添加舊格式和新格式,但我怎麼能做到這一點?更改格式日期
例如我有
$date = '01-2013-13'; // "m-Y-d"
我想接收:
$newDate = '2013-13-01'; // "Y-d-m"
見DateTime::createFromFormat()
和DateTime::format()
$date = DateTime::createFromFormat('m-Y-d', '01-2013-13');
echo $date->format('Y-m-d');
https://ignite.io/code/511b9c3aec221ec10e000003 – 2013-02-13 13:59:40
PHP無法分析使用strtotime()
的格式。你必須做這樣的事情:
function reformat($old_date)
{
$parts = explode('-', $old_date);
return $parts[1].'-'.$parts[2].'-'.$parts[0];
}
,然後使用調用它:
$new_format = reformat($date);
或者,你可以使用DateTime::createFromFormat()
:
function reformat($old_date)
{
$new_date = DateTime::createFromFormat('m-Y-d', $old_date);
return $new_date->format('Y-m-d');
}
可以使用DateTime
類,例如:
$date = new DateTime('01-2013-13');
然後使用format()
方法,如:
$date->format('Y-m-d');
我傾向於使用'createFromFormat'而不是簡單的'DateTime'構造函數,因爲傳入的格式是事先已知的。這也是不尋常的,可能是不明確的,所以讓PHP猜測這種格式可能不是最好的主意。 – SDC 2013-02-13 13:49:03
'date('new format',strtotime($ date));' – 2013-02-13 13:45:36
@WaleedKhan - 這個起源日期格式是'strtotime'可以解析的標準日期嗎?另外,我相信'strtotime('01 -02-2013')'會和'strtotime('01/02/2013')'不同,第一個給出'2013年2月2日',後者'2013年1月1日'。 – 2013-02-13 13:46:34
這是一個非常基本的問題,我不能相信一個網絡搜索「PHP格式日期」沒有指出你的答案。 – Jon 2013-02-13 13:47:27