Visualizzazione risultati 1 fino 3 di 3

Discussione: [php] calcolo orario lavorativo

  1. #1
    mikevba non è connesso Neofita
    Data registrazione
    20-08-2006
    Residenza
    giulianova
    Messaggi
    15

    Question [php] calcolo orario lavorativo

    Ciao,
    avrei un problema da porre.
    Sto facendo delle prove per calcolare le ore lavorative.
    Ho questo problema:
    in locale funziona tutto bene, mentre qui nel sito mi vengono dei risultati inattesi.
    in locale:
    10 hrs 12 min 0 sec
    7 hrs 14 min 0 sec
    7 hrs 11 min 0 sec
    nel sito:
    364 days 10 hrs 12 min 0 sec
    7 hrs 14 min 0 sec
    7 hrs 11 min 0 sec
    ho fatto un controllo della versione PHP ed ho notato che in locale ho la PHP Version 5.2.6 mentre nel sito ho la PHP 4.4.9 - Optimized for AlterVista.
    C'è un modo per adattare lo script che posto qui sotto per adattarlo alla versione PHP che ho qui in Altervista o, in alternativa, c'è la possibilità di usare qui nel sito una versione più aggiornata del PHP?
    Grazie per l'attenzione.
    ____________________________________________
    Questo il codice in questione:
    Codice PHP:
    <?php
    function date_diff($start, $end="NOW") {
    $sdate = strtotime($start);
    $edate = strtotime($end);
    $time = $edate - $sdate;
    if(
    $time>=0 && $time<=59) {
    // Seconds
    $timeshift = $time.' seconds ';
    } elseif(
    $time>=60 && $time<=3599) {
    // Minutes + Seconds
    $pmin = ($edate - $sdate) / 60;
    $premin = explode('.', $pmin);
    $presec = $pmin-$premin[0];
    $sec = $presec*60;
    $timeshift = $premin[0].' min '.round($sec,0).' sec ';
    } elseif(
    $time>=3600 && $time<=86399) {
    // Hours + Minutes
    $phour = ($edate - $sdate) / 3600;
    $prehour = explode('.',$phour);
    $premin = $phour-$prehour[0];
    $min = explode('.',$premin*60);
    $presec = '0.'.$min[1];
    $sec = $presec*60;
    $timeshift = $prehour[0].' hrs '.$min[0].' min '.round($sec,0).' sec ';
    } elseif(
    $time>=86400) {
    // Days + Hours + Minutes
    $pday = ($edate - $sdate) / 86400;
    $preday = explode('.',$pday);
    $phour = $pday-$preday[0];
    $prehour = explode('.',$phour*24);
    $premin = ($phour*24)-$prehour[0];
    $min = explode('.',$premin*60);
    $presec = '0.'.$min[1];
    $sec = $presec*60;
    $timeshift = $preday[0].' days '.$prehour[0].' hrs '.$min[0].' min '.round($sec,0).' sec ';
    }
    return
    $timeshift;
    }

    $start_date_1 = "01-08-2010 20:58";
    $end_date_1 = "02-08-2010 07:10";
    $start_date_2 = "02-08-2010 06:57";
    $end_date_2 = "02-08-2010 14:11";
    $start_date_3 = "02-08-2010 13:57";
    $end_date_3 = "02-08-2010 21:08";

    echo
    date_diff($start_date_1, $end_date_1) . "<br />\n";
    echo
    date_diff($start_date_2, $end_date_2) . "<br />\n";
    echo
    date_diff($start_date_3, $end_date_3) . "<br />\n";
    ?>

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Puoi cambiare la versione del php in uso dal Pannello di AlterVista, vedi le FAQ sul supporto PHP.

  3. #3
    mikevba non è connesso Neofita
    Data registrazione
    20-08-2006
    Residenza
    giulianova
    Messaggi
    15

    Predefinito

    Ti ringrazio dreadnaut
    ora ho la PHP 5.3.10 - Optimized for AlterVista.
    Non speravo di avere questa possibilità. Ora controllo come va lo script

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •