Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » Shark20 01:02
 » rainy 00:57
 » spidi 00:42
 » Paweł27 00:36
 » m&m 00:35
 » rzymo 00:35
 » b0b3r 00:22
 » dugi 00:21
 » NWN 00:20
 » Logan 00:16
 » mnih 00:10
 » cVas 00:08
 » Wedrowiec 00:08
 » Visar 00:06
 » Raist 00:04
 » muerte 00:04
 » @GUTEK@ 23:59
 » burz 23:56
 » metacom 23:46
 » wrrr 23:42

 Dzisiaj przeczytano
 41109 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2024
A R C H I W A L N A   W I A D O M O Ś Ć
    

PHP nalozenie przerw na okresy. , ptoki 17/05/12 10:47
Jak najwygodniej programowo w php nalozyc na dane w postaci:
data_czas wartosc
filtr aby wyrzucać dane z określonego harmonogramu.

Chodzi o to ze monitoring tłucze sie cały czas a potrzebne są dane o dostepnosci i wydajnosci tylko z okresu kiedy aplikacja miala byc online.

Problem w tym ze zbudowanie paru (3-4) harmonogramow w postaci:
7-18 pn-pt
7-22 pn-so
24/7
jest niewystarczajace bo mośkom może być potrzeba np.:
7-18 pn-pt + 7-15 so.

Zna ktos jakąś zgrabną metodę?

data_czas mam w postaci timestampa albo np tak 2012 04 01 00:00

Gdybym mial jakas funkcje w rodzaju is_in_schedule(schedule, timestamp) zwracajaca true/false a schedule by sie podawalo po ludzku to bylby wypas.
Ale szperam i nie widze nic prostego ale elastycznego.

  1. timestamp dobry , Deus ex machine 17/05/12 14:17
    http://www.php.net/manual/en/function.date.php
    date('Y-m-d', timestap) da Ci czytelna z timestampa
    http://www.php.net/...al/en/function.strtotime.php
    strtotime( data czytelna ) da Ci timestampa

    "Uti non Abuti"

    1. Tyle to ja wiem :) bo juz teraz raporciochy hulaja ale pokazuja dane , ptoki 17/05/12 14:20
      z calego okresu i w rezultacie tam jest i noc i weekendy. A ja chce wyciac te wolne okresy.
      Teraz sie dowiedzialem ze nie moge se na bazie poagregowac i operowac danymi z calych godzin tylko albo bede musial zadawac zapytania podokresami albo kazdy jeden rezultat puszczac przez filtr czy sie miesci w schedule czy nie...

      Do tego baza to nie baza tylko sql-opodobne API...

      Rzeźba w ... ;)

  2. nie mam jak teraz sprawdzic, ale powinno zadzialac , Deus ex machine 17/05/12 20:09
    i nie jest to jakos super optymalne .)

    $harmonogram = array(
    1 => array( // poniedzialek
    '10-17',
    '9-15',
    ),
    3 => array( // sroda
    '1-15',
    ),
    5 => array(), // caly piatek
    7 => array( // niedziela
    '6-12',
    ),
    );

    function isInSchedule( $schedule, $timestamp )
    {
    $dayTS = date('N', $timestamp );
    $hourTS = date('G', $timestamp );
    $minTS = date('i', $timestamp );
    if ( isset( $schedule[ $dayTS ] ) {
    if ( empty( $schedule[ $dayTS ] ) ) {
    return true;
    }
    foreach ( $valPeriod as $periodHours ) {
    $range = explode('-', $periodHours);
    if ( count( $range ) == 1 ) {
    if ( $hourTS >= $range[0] ) {
    return true;
    } else {
    return false;
    }
    }
    if ( ( $minTS > 0 && $hourTS >= $range[0] && $hourTS < $range[1] )
    || ( $minTS == 0 && $hourTS >= $range[0] && $hourTS <= $range[1] ) // ten warunek zlapie tez kilka sekund po pelnej godzinie
    ) {
    return true;
    }
    }
    }
    return false;
    }

    "Uti non Abuti"

    1. Dzieki za porade. Narazie mysle. bede klecil cos od poniedzialku. , ptoki 18/05/12 07:24
      Zobacze jak wyjdzie. Serwer jest szybki wiec moze takie barbażyńskie raporty lyknie. ;)

  3. No to wychodzi na to ze zrobie tak - dosyc cwanie: , ptoki 23/05/12 22:01
    W pierwszym kroku ludek wybiera date poczatkowa i koncowa i wybiera harmonogram z listy.

    Tych harmonogramow bedzie pare w postaci 7-18 pn-pt, 7:30-16 pn-pt, 6-22 pn-nd i tak dalej.

    W drugim kroku skrypt sprawdza jaki jest wybrany harmonogram i generuje taka liste:
    Mon 2012 Apr 23 7:00 18:00
    Tue 2012 Apr 24 7:00 18:00
    Wed 2012 Apr 25 7:00 18:00
    Thu 2012 Apr 26 7:00 18:00
    Fri 2012 Apr 27 7:00 18:00
    Mon 2012 Apr 30 7:00 18:00
    Tue 2012 May 01 7:00 18:00
    Wed 2012 May 02 7:00 18:00
    Thu 2012 May 03 7:00 18:00
    Fri 2012 May 04 7:00 18:00
    Mon 2012 May 07 7:00 18:00
    Tue 2012 May 08 7:00 18:00
    Wed 2012 May 09 7:00 18:00
    Thu 2012 May 10 7:00 18:00
    Fri 2012 May 11 7:00 18:00
    Mon 2012 May 14 7:00 18:00
    Tue 2012 May 15 7:00 18:00
    Wed 2012 May 16 7:00 18:00
    Thu 2012 May 17 7:00 18:00
    Fri 2012 May 18 7:00 18:00
    Mon 2012 May 21 7:00 18:00
    Tue 2012 May 22 7:00 18:00
    Wed 2012 May 23 7:00 18:00
    Thu 2012 May 24 7:00 18:00

    To jest propozycja do zaakceptowania lub zmodyfikowania.
    Jak sie komus nie podoba ze tam jest 1 i 3 maj to wywala jak sie mu umyslilo ze 23 maja mialo byc czynne do 23:00 to sobie modyfikuje.
    Jak se umysli ze w jakas tam sobote mialo byc czynne to se dopisuje.
    I klika w kolejny krok.
    Tam juz skrypt bierze poszczegolne linijki i dla nich generuje zapytanie. potem to skleja w kupke i liczy syatystyke.

    Zaleta jest taka ze jak sie pojawi przerwa w trakcie dnia to taka figura zalatwia "legalna dziure":

    Wed 2012 May 23 7:00 13:00
    Wed 2012 May 23 14:00 18:00

    Tyle ze user musi nie byc debilem zeby bzdur nie dostal.

    
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL