在PHP中转换不同的日期格式

时间:2013-11-19 04:01:40

标签: php

我有一个包含不同格式日期的文件,内容中也有一些字符串,例如:

5/10/2013,
03-06-2013,
4156200%,
Friday, May 10, 2013

我希望能够检查给定字符串是否为日期,然后将其格式化为:Month-Day-Year。在上面的示例内容中,有3个日期:5/10/20133-06-2013Friday, May 10, 2013我需要一个函数来接收这些字符串并将它们转换为日期,如果需要,可以使用之前指定的格式。

如果字符串不是有效日期,那么我希望保留相同的内容。

下面是我认为该功能的示例:

convert_date($st_val){
   $ret = '';

   if( isFomatDate( $st_val ) ) {
      $ret = fomatDate( $st_val, mm-dd-yyyy );
   } else {
      $ret = $val_val;
   }
}

此功能的预期输出应为:

// Entered string
5/10/2013
// Expected output
05-10-2013
// Entered string
03-06-2013
// Expected output
03-06-2013
// Entered string
4156200%
// Expected output
4156200%
// Entered String
aaaa
// Expected output
aaaa
// Entered string
Friday, May 10, 2013
// Expected output
05-11-2013

3 个答案:

答案 0 :(得分:0)

使用strtotime函数,如果它不是日期格式,则返回false。如果返回false则返回原始字符串。

$time = strtotime($string);
if(!$time)
{
   return $string;
}
return $time;

答案 1 :(得分:0)

您可以尝试以下功能:

function dates_format($datesstr)
{
$dates_str=strtotime($datesstr);

if($dates_str!="")
{
return date("d-m-Y"); 
}
else
{
return $datesstr;
}

}

echo dates_format("12-10-2013");

答案 2 :(得分:0)

function convert_date($st_val){
 $ret = '';
 $check = strtotime($st_val);
 if($check){
  $ret = date("m-d-Y",$check);
 }else{
   $ret = $st_val;
 }
 return $ret;
}

echo convert_date('5/10/2013')."<br>";
echo convert_date('03-06-2013')."<br>";
echo convert_date('4156200%')."<br>";
echo convert_date('aaaa')."<br>";
echo convert_date('Friday, May 11, 2013')."<br>";