如何将日期从dd-mm-yy转换为mm-dd-yy

时间:2010-09-01 06:33:44

标签: php date

如何将日期从dd-mm-yy转换为mm-dd-yy

下面是我的代码

<?
$date= date('d-m-y');
echo date('m-d-Y',strtotime($date));
?>

但结果是:09-10-2001

我需要09-01-2010

5 个答案:

答案 0 :(得分:8)

这不起作用:

date('m-d-y', strtotime($the_original_date));

如果你有PHP 5.3,你可以这样做:

$date = DateTime::createFromFormat('d-m-y', '09-10-01');
$new_date = $date->format('m-d-Y');

否则:

$parts = explode('-', $original_date);
$new_date = $parts[1] . '-' . $parts[0] . '-' . $parts[2];

答案 1 :(得分:3)

你可以这样做:

$input = 'dd-mm-yy';
$a = explode('-',$input);
$result = $a[1].'-'.$a[0].'-'.$a[2];                                      

答案 2 :(得分:0)

试试这个date("m-d-y", {your date variable})

答案 3 :(得分:0)

如果格式总是如上所述,这应该有效:

$pieces = explode("-", $yourTimestring);
$timestamp = mktime(0,0,0,$pieces[1], $pieces[0], $pieces[2]);
$newDateStr = date("m-d-y", $timestamp);

编辑:是的,只是看到了“codaddict”的回答,是的,如果我将它分开,你也可以直接连接它^^

答案 4 :(得分:0)

如果你没有PHP 5.3可以使用sscanf函数并使用参数交换选项:

$theDate = '01-02-03';
print join(sscanf($theDate, '%2$2s-%1$2s-%3$2s'), '-');
# output: 02-01-03

sscanf基本上根据提供的格式解析数组中提供的字符串,将第一个匹配的参数(日)与第二个(月)交换,使第三个(年)保持不变,然后数组再次与-作为分隔符连接。