背景:日期格式 0000-2330,每隔半小时记录一次,即时间为0000,0030,0100,0130.2330
需求:假设起始和结束时间点分别为s和e,如何用正则截取两者之间的时间呢?
例子:假设起始时间点为0030,结束时间点为0130,则0030,0100,0130都是需要保留下来的。
多谢!

解决方案 »

  1.   


    $s = '0000,0030,0100,0130, 0200, 0230,... 2330';
    preg_match('/(0000.*0130)/',$s,$arr);
    echo $arr[1];
      

  2.   

    其实,时间段代表的是文件名,file0000,file0030这样的,我先通过设置起始和结束时间点来读取想要的文件,用shell脚本操作的。希望各位多帮助!!!
      

  3.   

    那你直接用  explode 截取时间 ,比较时间是否在你的范围内 ,如果在就组成文件名读取就可以了……
      

  4.   


    $s = '0000,0030,0100,0130, 0200, 0230,... 2330';
    preg_match('/(0000.*0130)/',$s,$arr);
    preg_match_all('/\d+/',$arr[1],$sarr);
    echo '<pre />';
    $out = array_map('prc',$sarr[0]);
    print_r($out);
    function prc($n){
      return 'file'.$n ;
    }