2017-10-20 82 views
1

我正在处理我的PHP脚本以从网站中删除数据。在第1天至第7天,如果标志是0我想检查的时间,以查看是否该时间小于​​然后我想使用flag = 1如何检查时间是否大于或小于

示例:时间10:00 PM11:59 PM小于​​所以我可以使用flag = 1

下面是代码:

if($day>=0 && $day <= 7) 
{ 
    $flag=0; 

    if($day >= 1) 
    { 
     if ($flag == 0) 
     { 
     print_r($show_times); 
     } 
    } 
} 

下面是结果:

Array ([0] => 22:00 [1] => 03:00 [2] => 04:00 [3] => 06:00 [4] => 08:00 [5] => 10:00 [6] 
=> 11:00 [7] => 12:00 [8] => 13:00 [9] => 13:55 [10] => 14:25 [11] => 14:55 [12] 
=> 16:55 [13] => 18:10 [14] => 18:40 [15] => 19:00 [16] => 19:30 [17] => 20:00 [18] => 20:55 [19] 
=> 21:55 [20] => 23:10 [21] => 00:40 [22] => 01:00 [23] => 01:30 [24] => 02:00) 10:00 PM KSW 39 

下面是完整的代码:

<?php 
function get_shows($day,$channel_id, DateTime $dt, $today = false) 
{ 

    $ch = curl_init(); 
    curl_setopt_array($ch, array(
     CURLOPT_USERAGENT => '', 
     CURLOPT_TIMEOUT => 30, 
     CURLOPT_CONNECTTIMEOUT => 30, 
     CURLOPT_HEADER => false, 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_FOLLOWLOCATION => true, 
     CURLOPT_MAXREDIRS => 5, 
     CURLOPT_SSL_VERIFYPEER => false 
    )); 

    $date = $dt->format('Y-m-d'); 
    $tz = $dt->getTimezone(); 

    $now = new DateTime('now', $tz); 
    $today = $now->format('Y-m-d'); 
    $shows = array(); 
    $url = 'https://www.example.com/scrip.php?date=' . $date; 
    curl_setopt($ch, CURLOPT_URL, $url); 
    $body = curl_exec($ch); //get the page contents 

    $channel_row = $row_channels[0][0]; // Woksepp: 0 = First row. 

    $pattern23 = "/<a class=\"prog\" href=\"(.*?)\">.*?<span class=\"time\">(.*?)<\/span>.*?<span class=\"title\" href=\"\#\">(.*?)<\/span>.*?<span class=\"desc\">(.*?)<\/span>/s"; 
    preg_match_all($pattern23, $channel_row, $d); 
    $show_times = $d[2]; 

    //test this 
    if($day>=0 && $day <= 7) 
    { 
     $flag=0; 

     if($day >= 1) 
     { 
      if ($flag == 0) 
      { 
       print_r($show_times); 
      } 
     } 
    } 
} 

我很期待做的是我要检查,如果时间显示22:00或不管它是自带中间夜间00:00之前,我想设置标志为1,这样我可以跳过数组中的时间。

能否请你告诉我一个例子,我怎么能检查22:0023:59之间的时间,看看时间小于00:00这样我就可以使用flag = 1 if语句下?

回答

1

尝试以下操作:

if($day >= 1) 
{ 
    foreach($show_times as $show_time) 
    { 
     if(strtotime($show_time) < strtotime('12:00')) 
     { 
      $flag=1; 
     } 
    } 
} 

这将检查时间小于noon并设置$flag1

+0

非常感谢你为这个,我可以看到它是工作的伟大,但我想使用'$ day> = 1',因为你使用的代码会在第0天到第7天之间使用,所以你可以改变你的代码吗? –

+0

检查更新的答案。 – mega6382

+1

如果解决方案有帮助,请务必接受它。 – mega6382

相关问题