2012-04-27 109 views
0

我有以下五个字符串(他们应该像时间): 11-20 9:30-20:00 8-20 7-16,30 9.30-9.50字符串转换为相同格式

我不知道是否有任何方式将它们全部转换为格式HH.HH-MM-MM。 例如11-20应转换为11.00-20.00。

回答

2

如何:

$str = '11-20 9:30-20:00 8-20 7-16,30 9.30-9.50'; 
$result = preg_replace_callback('~([\d:,.]+)~', function($i) { 
    $i[1] = str_replace(array(',', '.'), ':', $i[1]); 
    if (strpos($i[1], ':') === false) { 
     $i[1] .= ':00'; 
    } 

    return $i[1]; 
}, $str); 
var_dump($result); 

http://codepad.viper-7.com/2esU4N

1

建设什么zerkms我才想出了这个

<?php 
class timeString { 

public function timeString($string) { 
     $exp = explode('-', $string); 
     $timeString = array(); 
     foreach ($exp as $value) { 
      $timeString[]= $this->normTime($value); 
     } 
     $time = implode('-', $timeString); 
     return $time; 
    } 
public function normTime($string) { 
     $result = preg_replace_callback('~([\d:,.]+)~', function($i) { 
        $i[1] = str_replace(array(',', ':'), '.', $i[1]); 
        if (strpos($i[1], '.') === false) { 
         $i[1] .= '.00'; 
        } 

        return $i[1]; 
       }, $string); 
     return $result; 
    } 
} 

这将返回你问究竟什么11.00-20.00

祝你好运。

相关问题