我几乎尝试了10个小时来改变适合我需要的日期格式,但无法成功。我尝试过以下示例的Preg_Replace Strotime函数。
目前的日期格式为:02-25-2006 想转换于:2006-02-25
以下是我尝试过的示例列表:
publishdate = "02-20-2012";
echo preg_replace("/\d{2}-\d{2}-\d{4}/","$3/$1/$2",$publishdate);
$dateString= '2006-09-14';
echo date("m/d/Y", strtotime($dateString));
$dateString1= '02-20-2012';
echo date("Y/m/d", strtotime($dateString1));
$date1 = '05-25-2010';
echo date('Y-m-d', strtotime($date1));
$dateString2= '02-20-2012';
echo preg_replace("/(\d{2})-(\d{4})-(\d{2})/","$2/$3/$1",$dateString2);
答案 0 :(得分:1)
ad regexp:
如果要在替换表达式中使用部分匹配,则必须在正则表达式中标记捕获组!你可以通过将正则表达式模式的部分括在括号中来实现。所以你的正则表达式应该是/(\d{2})-(\d{2})-(\d{4})/
。 regexp docs中的更多信息,尤其是subpatterns上的部分。
ad strtotime:
如果您选择-
作为日期部分分隔符,那么天必须首先出现。因此,02/20/2012
和20-02-2012
一样有效,02-20-2012
则不会。有关支持的日期/时间格式的更多详细信息,请参阅docs。
答案 1 :(得分:0)
最简单的方法是使用date_create_from_format
:
$date1='02-25-2006';
echo($date1);
echo "<br>";
$newdate = date_format(date_create_from_format('m-d-Y', $date1),'Y-m-d');
echo $newdate;
然后输出 2006-02-25 。