Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2020
    Messaggi
    26

    Differenza tra 2 campi Time con centesimi

    Ciao a tutti, ecco il mio problema.
    Ho due variabili che contengono rispettivamente un valore time in formato hh:mm:ss.00 dove 00 sono i centesimi.

    Codice PHP:
    $tempo_imposto;
    $tempo_rilevato
    Devo trovare la differenza tra il tempo imposto ed il tempo rilevato e trasformarlo in punteggio, dove 1 centesimo di ritardo=1 punto di penalità.

    Quindi per esempio se ho:

    10:00:00.00 - 10:00:00.09 = 9 punti di penalità (9 centesimi di ritardo)
    10:00:00.00 - 10:00:01.00 = 100 punti di penalità (1 secondo di ritardo)
    10:01:00.00 - 10:00:00.00 = 6000 punti di penalità (1 minuto di ritardo)

    Ho provato con trasformando in strtotime facendo la differenza tra i due, ma con i centesimi non ci siamo.
    Qualche suggerimento?

  2. #2
    Effettua il parsing delle stringhe, calcola la differenza, formatta in minuti, secondi e millisecondi e poi moltiplica per i vari pesi per ottenere la penalità.

    https://www.php.net/manual/en/dateti...fromformat.php
    https://www.php.net/manual/en/datetime.diff.php
    https://www.php.net/manual/en/datetime.format.php

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2020
    Messaggi
    26
    Ecco come ho risolto, sicuramente poco elegante ma sembra funzionare.
    Accetto consigli su come migliorarlo

    codice:
    $time1="13:59:59.01";
    $time2="13:00:00.00";
    
    
    
    
    $ore_time_1 = substr($time1, -11, -9);
    $minuti_time_1 = substr($time1, -8, -6);
    $secondi_time_1 = substr($time1, -5, -3);
    $centesimi_time_1 = substr($time1, -2, 2);
    
    
    $ore_time_2 = substr($time2, -11, -9);
    $minuti_time_2 = substr($time2, -8, -6);
    $secondi_time_2 = substr($time2, -5, -3);
    $centesimi_time_2 = substr($time2, -2, 2);
    
    
    $dif_time_ora=$ore_time_1-$ore_time_2; $dif_time_ora=$dif_time_ora*60*100*60;
    $dif_time_minuti=$minuti_time_1-$minuti_time_2; $dif_time_minuti=$dif_time_minuti*60*100;
    $dif_time_secondi=$secondi_time_1-$secondi_time_2; $dif_time_secondi=$dif_time_secondi*100;
    $dif_time_centesimi=$centesimi_time_1-$centesimi_time_2; 
    
    
    
    
    $somma_penalità_totali=$dif_time_ora+$dif_time_minuti+$dif_time_secondi+$dif_time_centesimi;
    
    
    echo $somma_penalità_totali;

  4. #4
    Il manuale, questo sconosciuto:

    Codice PHP:
    $timeFrom '13:00:00.00';
    $timeTo '13:59:59.01';

    $dateFrom DateTime::createFromFormat('H:i:s.u'$timeFrom);
    $dateTo DateTime::createFromFormat('H:i:s.u'$timeTo);

    $interval $dateTo->diff($dateFrom);

    $penalty $interval->6000 $interval->100 $interval->100;

    print(
    'Penalty: ' $penalty); 

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2020
    Messaggi
    26
    Grazie, vado a studiare!

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.