2012-01-31 102 views
1

我从包含军用时间为1330数据库中提取值(不要问为什么)输入字符的字符串,第2个字符后

我想在1330转换至13:30,然后的strtotime运行把13:30:00到下午1:30

我有作家块,我怎么可以把一个冒号:2和3之间的人物,在1330

回答

1

可以使用做到这一点:

$time = substr($time, 0, 2) . ':' . substr($time, 2); 

但是你为什么要分裂。你可以直接得到你的输出下午1:30有:

echo date("h:i a",strtotime(1330)); 

第二个选项会给你造成更多更快。为什么浪费时间分裂。

希望这会有所帮助:)

5

一个显而易见的方法是使用substr

$time = "1330"; 
$new_time = substr($time, 0, 2) . ':' . substr($time, 2); 

另一种解决方案是preg_replace

$time = "1330"; 
$new_time = preg_replace('/(\d{2})(\d{2})/', '\1:\2', $time); 

此外,str_split是可能的:

$time = "1330"; 
$new_time = implode(':', str_split($time, 2)); 
3

偷懒的方法:

chunk_split('1330', 2, ':') . '00'; 
+0

不错!我第一次看到'chunk_split'。在这种情况下非常有用+1 – knittl 2012-01-31 15:23:09

1

应该能够只是做:

$time = '1330'; 
$part_a = substr($time, 0, 2); 
$part_b = substr($time, 2, 2); 

$new_time = $part_a . ':' . $part_b;