Search code examples
arraysgoogle-mapspreg-matchhidetiming

Updated: How to hide marker from a marker array?


I have an array $d of postcodes, this generates markers of my google map. I want only show markers which were created less than 3 seconds, over 3 seconds will be hidden.

$postcodes = array();
 $diff = array(); // time difference variable
 foreach($stmt as $x){
  //////////////time calculation start////////////////////////////     
        $posts[] = $x['date'];
        $timePosted = new DateTime($posts[] = $x['date']);
        echo 'Time Posted : '. $timePosted ->format("d-m-Y H:i:s");
        echo "</br>";
        date_default_timezone_set('Europe/London');
        $today = date('d-m-Y H:i:s');
        echo 'Current time is : '. $today;
        echo "</br>";      
        $today = new DateTime(date('d-m-Y H:i:s'));
        $interval = $timePosted->diff($today);
         "Difference " . $interval->d. " days ". $interval->h. " hours ".$interval->i." minutes ".$interval->s." seconds ";
        echo "</br>";
        //$diff[] = $interval->h. " hours ".$interval->i." minutes ".$interval->s." seconds ";
        $diff[] = $interval->s;  //last array seconds
/////////////////////time calculation finish here/////////////////////////

  global $postcodes;
 //$postcodes[] = $x['postcode'];  //postcodes
  foreach ($diff as $time => $seconds) {
           echo var_dump($seconds);
           if($seconds >=3){
           echo "larger than 3 seconds<br />";
           }else{
         echo "smaller than 3 seconds.<br />";
        $postcodes[] = $x['postcode'];  //this need to be globle not working yet
           }
        }//time foreach loop finish here


    } /// main foreach loop finish here
  $d=' "'.implode('","',$postcodes).'"'; //postcodes inside $postcode array

Solution

  • I can't believe how simple this can be, it turns out I don't need to write this in php at all, I can just do it in SQL all I need is to add date >= now() - INTERVAL 3 second; to my sql statement. Hope this can help someone.