Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it
    Registrato dal
    Oct 2020
    Messaggi
    26
    chiedo perdono ma non ci arrivo, mi da errori. ho le idee confuse..

    $date = new \DateTime('2021-11-10 00:00:00.000001', new \DateTimeZone('Europe/Rome')); // Oggetto
    $date2 = new \DateTime('2021-11-10 00:00:00.000006', new \DateTimeZone('Europe/Rome')); // Oggetto
    $result = null;
    //Uguale allo stesso secondo
    if($date->format('U') === $date2->format('U'))
    $result = ('0.' . ($date2)->format('u')) - ('0.' . ($date)->format('u'));
    else
    $hi = '';
    //Altro codice php

    //Attenzione php non può usare i numeri in virgola fissa ma in virgola mobile e spesso perde precisione e anche la visualizzazione (impostazione ini precision) può modificare distorcendo il valore effettivamente memorizzato
    $date2->modify('2 second'); //
    var_dump($date2);


  2. #12
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Spero questo link al codice sia chiaro https://3v4l.org/lTgT5

  3. #13
    Utente di HTML.it
    Registrato dal
    Oct 2020
    Messaggi
    26
    purtroppo no, buio totale

  4. #14
    Utente di HTML.it
    Registrato dal
    Oct 2020
    Messaggi
    26
    Ecco la funzione che vorrei è esattamente questa, solo che vorrei aggiungere i centesimi.
    Il formato dovrebbe essere 10:00:00.00

    Codice PHP:
    // convert your date to DateTime object

    $date '10:00:00';
    $dt = new DateTime($date);
    // convert your period to 
    DateInterval$hours '00:25:10'

    /* this data dynamic */

    $parts explode(':'$hours);
    $interval = new DateInterval('PT' . (int)$parts[0] . 'H' $parts[1] . 'M' $parts[2] . 'S');

    // Add interval to date
    $dt->add($interval);// Format date as you needecho $dt->format('H:i:s'); 

  5. #15
    Utente di HTML.it
    Registrato dal
    Oct 2020
    Messaggi
    26
    no.. Quello di cui avrei bisogno è esattamente questo:

    codice:
    Time1=’10:00:00.00’; //(orario di partenza)
    Time2=’00:00:00.30’; //(ritardo)
     
    $risultato=’10:00:00.30’;


    Questo fa quello di cui ho bisogno ma non ci sono i centesimi

    codice:
    $time = "06:58:00";
    $time2 = "00:40:00";
     
    $secs = strtotime($time2)-strtotime("00:00:00.00");
    $result = date("H:i:s",strtotime($time)+$secs);

  6. #16
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Il formato u è massimo lungo 8 cifre indica microsecondi da php 5.0.0 strtotime sono stati aggiunti mentre date accetta numeri interi mentre in DateTime esiste da php 5.2.2 . Esiste un bug inferiore a php 7.2 che non recupera i microsecondi se il locale usa la virgola per numeri in virgola mobile come separatore decimale.
    Se il formato u indica $date = new DateTime('2020-01-01 00:00:00.000000 Europe/Rome'); //6 cifre con zero
    msec 6 indica 006 le prime tre cifre mentre i centesimi usec 6 indica 006. (Guarda il mio esempio uso il formato u, usec etc).
    Con la funzione modify se il numero è negativo fai la sottrazione altrimenti la somma.
    Ultima modifica di darbula; 14-11-2021 a 02:48

  7. #17
    E' così difficile leggere il manuale?

    Codice PHP:
    $timeStart '13:00:00.00';
    $timeDelay '00:00:00.30';

    $dateStart DateTime::createFromFormat('H:i:s.u'$timeStart);

    $dateStartDelay DateTime::createFromFormat('H:i:s.u''00:00:00.00');
    $dateDelay DateTime::createFromFormat('H:i:s.u'$timeDelay);

    $diffDelay $dateStartDelay->diff($dateDelay);

    $result $dateStart->add($diffDelay);

    print(
    $result->format('H:i:s.u'));

    print(
    "\r\n" substr($result->format('H:i:s.u'), 011)); 

  8. #18
    Utente di HTML.it
    Registrato dal
    Oct 2020
    Messaggi
    26
    Risolto grazie a tutti

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 © 2024 vBulletin Solutions, Inc. All rights reserved.