字符串转换为相同格式
问题描述:
我有以下五个字符串(他们应该像时间): 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。
答
如何:
$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);
答
建设什么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
。
祝你好运。