Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Confronto orari in variabili e operazioni

    Salve a tutti i lettori;

    nonostante sia un noob di PHP, sto scrivendo la prima faticosa applicazione ma adesso sono bloccato ad un ciclo di confronto fra orari:

    ho due array contenute in altrettante variabili, $sched e $stim, la prima mi da degli orari schedulati, l'altra mi da i rispettivi orari reali, quando faccio un echo di una delle due visualizzo tutti gli orari, schedulati o reali, nel formato 00:00.
    Dopo aver scritto due cicli for che leggono ogni stringa, prima di $sched e poi di $stim, non so più come fare per confrontare le due variabili e visualizzare soltanto gli orari con una differenza di tre ore, ad esempio, se un'orario schedulato è uguale a 12:25 e il rispettivo orario reale è uguale a 15:25 devo visualizzare la stringa, altrimenti no.

    Il motivo principale dell'apertura di questo topic è perché su internetz non ho trovato ancora informazioni che fanno al caso mio e tra il manuale di php con millemila funzioni per la gestione delle date, timestamp e così via dicendo, non so di preciso come proseguire, se trasformare ogni elemento delle variabile in numero intero, in timestamp.. boh.
    Magari esiste una funzione che fa al caso mio..

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sto capendo che il numero di elementi è lo stesso per entrambi i vettori, in questo caso puoi fare:

    Codice PHP:
    $len sizeof($sched); $ore 3// numero orari e ore differenza
    $gaps = array(); // conterrà quelli che voglio
    for ($i=0$i<$len$i++) {
      
    $sch $sched[$i]; $sti $strim[$i]; // orari
      
    $sts =strtotime($sch); $rts strtotime($sti); // timestamp in secondi
      
    $gap $rts-$sts// gap in secondi
      
    if ($gap==$ore*60*60) { // differenza tre ore: puoi anche usare ">" o "<"
        
    $gaps[] = array('scheduled' => $sch'real' => $sti);
      };
    };

    print_r($gaps); // stampa quelli selezionati 
    Naturalmente nel confronto di orari puoi anche usare "maggiore" o "minore")... tieni conto di eventuali segni negativi... se la differenza può essere in più o in meno usa il valore assoluto nella differenza.

  3. #3
    Ti ringrazio per l'aiuto, rispondo in ritardo perché sto utilizzando mktime per calcolare il timestamp solo che al momento non mi da l'output giusto; mi spiego meglio:

    Ho questa variabile $ora1 che contiene il primo orario schedulato, solo che essendo 02 la funzione mktime, sia se uso float o int me lo prende come 00, mezzanotte, alterando il risultato. Come risolvo?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mmh... sai che non ho capito? puoi rispiegare?

  5. #5
    Fortunatamente ho risolto: il mio problema è che nelle variabili che passavo a mktime in realtà c'erano dei caratteri aggiuntivi che mi passava il simplehtmldom, eliminando quei caratteri aggiuntivi sono riuscito a passare gli orari e a far risultare i timestamp per i confronti degli orari.

    Ti ringrazio per la disponibilità

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    va bene, ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.