这个问题在这里已经有了答案:
将一个日期格式转换成另一个PHP
12的答案
我想将日期从yyyy-mm-dd转换为dd-mm-yyyy(但不是在SQL中); 但是我不知道日期函数如何需要一个时间戳,我不能从这个字符串得到一个时间戳。
使用strtotime()和date():
$originalDate = "2010-03-21";
$newDate = date("d-m-Y", strtotime($originalDate));
(见的strtotime和日期在PHP网站的文档)。
编辑:请注意,这是对原始问题的快速解决方案。对于更广泛的转换,你应该真的使用DateTime类来解析和格式:-)
如果你想避免strtotime转换(例如strtotime不能解析你的输入),你可以使用,
$myDateTime = DateTime::createFromFormat('Y-m-d', $dateString);
$newDateString = $myDateTime->format('d-m-Y');
或者等价地:
$newDateString = date_format(date_create_from_format('Y-m-d', $dateString), 'd-m-Y');
你首先给它的格式是$ dateString。然后你告诉它你想要$ newDateString的格式。
或者,如果源格式始终是“Ymd”(yyyy-mm-dd),那么只需使用DateTime:
<?php
$source = '2012-07-31';
$date = new DateTime($source);
echo $date->format('d.m.Y'); // 31.07.2012
echo $date->format('d-m-Y'); // 31-07-2012
?>