微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-统一日期字符串具有不同的格式

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

我想用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] => 
)

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

解决方法:

您可以为此使用此功能.小提琴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) );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐