php - 统一不同格式的日期字符串

标签 php date

我有一个包含许多不同格式日期的数组。所有字符串。

我想用 dates() 将它统一到一个数组中。像这样:

function uniformize($str){
  $date = strtotime($str);
  return $date;
}

$arr = array(
  '07/29/1975',
  '20/01/1981',
  '1983-05-24',
  '10 /8 /1995'
  );

print_r( array_map('uniformize', $arr) );

但这只适用于一种格式:

Array ( 
  [0] => 
  [1] => 
  [2] => 454215600 
  [3] => 
)

有什么方法可以对所有格式进行处理吗?

最佳答案

您可以为此使用此功能。 fiddle here

请注意,它应该总是比月份早几天。否则无法知道日期的第一部分是一天还是一个月(除非一天超过 12.. 并且不能涵盖所有情况)。

function date2time($date)
 {
    $date = str_replace(' ','',$date);
    if(strpos($date,'-')!==false)
      $date_array = explode('-',$date);
    if(strpos($date,'/')!==false)
     $date_array = explode('/',$date);
    //add more delimiters if needed

    $day = $month = $year = '';

   foreach($date_array as $date_elem)
   {
    if(strlen($date_elem) < 3)
    {
       if(empty($day))
         $day = $date_elem;
       else
         $month = $date_elem;

    }else
      $year = $date_elem;
   }


    $time = mktime(0,0,0,$month,$day,$year);

    return $time;
  }

$arr = array(
  '07/29/1975',
  '20/01/1981',
  '1983-05-24',
  '10 /8 /1995'
  );

print_r( array_map('date2time', $arr) );

关于php - 统一不同格式的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30439151/

相关文章:

php - 服务器端验证,客户端通知?

sql - SQL计算一个人的年龄

Javascript - 按年、月和日分组的对象数组

java - 通过指定星期几获取下一个日期

php - 使用 php 脚本连接到数据库,但没有返回任何值

php - 更新选择框值的 JavaScript 或 Qt 方式?

php - Symfony2 在监听器中使用记录器

php - PHP 翻译

javascript - 更改月份的两个日期之间的差异

java - 将符合 ISO 8601 的字符串转换为 java.util.Date