Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: [funzione] datediff

  1. #1
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217

    [funzione] datediff

    ho notato che a dispetto (anzi a differenza ) dell'ASP in php nn esiste una funzione date diff che effettui la differenza tra date..

    caso d'uso banale: voglio calcolare quanti giorni passano da adesso al 20 di luglio....

    così ho fatto una (anzi due) funzioncina ad hoc

    datediff(string formato, timestamp data2[, timestamp data1])

    la funzione calcola la differenza in questo modo.. se ad esempio vogliamo calcolare la differenza tra domani alle due ed oggi a mezzo dì la risposta della funzione sarà 1 giorno e 2 ore (mentre la funzione datediff2 ritornerebbe 26 ore e un giorno)

    usare le funzioni è semplice gli si passa la stringa con la formattazione voluta tipo: "mancano %g giorni %h ore %m min e %s sec"

    lascio le criaturelle ai posteri se le trovate utili o desiderate che le modifichi ad hoc per qualche uso particolare nn dovete fare altro che postare...

    Codice PHP:
    $data2 mktime(20,20,24,6,07,2005);
    $data1 mktime(11,2,12,6,07,2005);

    echo 
    datediff("mancano %g giorni %h ore %m min %s sec",$data2,$data1);
    echo 
    datediff2("mancano %g giorni %h ore %m min %s sec",$data2,$data1);

    function 
    datediff($f,$t2,$t1=0){
    $t = (int)($t2 $t1);
    $a = array("%g","%h","%m","%s");
    $d = array((int) (($t/86400)), (int) (($t%86400/3600)), (int) (($t%3600)/60),(int) ($t%60));
    return 
    str_replace($a,$d,$f);
    }

    function 
    datediff2($f,$t2,$t1=0){
    $t = (int)($t2-$t1);
    $a = array("%g","%h","%m","%s");
    $d = array((int) ($t/86400), (int) ($t/3600), (int) ($t/60),(int) ($t));
    return 
    str_replace($a,$d,$f);

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  2. #2
    Se puo' tornarti utile in mysql 4.1 ci sono due + due nuove funzioni.

    datediff() e timediff() + altre due funzioni addtime() e subtime()

    http://forum.html.it/forum/showthrea...hreadid=839754


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    ciao Piero...
    ma la mia nn è na richiesta.. c'era un tizio che ne aveva bisogno ne ho fatta na versione più carina e l'ho postata
    se a qualcuno serve passa e se la prende...
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  4. #4
    Originariamente inviato da luke83
    ciao Piero...
    ma la mia nn è na richiesta.. c'era un tizio che ne aveva bisogno ne ho fatta na versione più carina e l'ho postata
    se a qualcuno serve passa e se la prende...
    Appunto per questo ho postato la versione di mysql... cosi' il passante potra' scegliere.

    Sono strumenti diversi. se i dati sono su db e' meglio usare le funzioni di mysql. Senza nulla togliere a php. Solo per ottimizzare lo script e nulla piu'.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    no no ok.. pensavo che stessi suggerendo a me come fare.. ho frainteso.. tutto ok.. megio che lo hai messo così due piccioni con una fava prende chi cerca...
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  6. #6
    Originariamente inviato da luke83
    no no ok.. pensavo che stessi suggerendo a me come fare.. ho frainteso.. tutto ok.. megio che lo hai messo così due piccioni con una fava prende chi cerca...
    Dalle tue risposte che dai nei post non credo tu possa avere bisogno dei miei suggerimenti...



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    [ot]
    Piero massimo rispetto...
    Adesso due sono le cose
    1. mi stai palesemente prendendo per i fondelli
    2. qualcuno nn disprezza i miei tentativi di imparo, imparo, imparo...

    Per preservare la mia integrità morale e accrescere la mia autostima propongo un "la seconda che hai detto!" (devo staccare un assegno a Corrado...)

    in due parole Grazie per il complimento
    ( se nn lo è... )

    perdonate la botta di allegria..
    [/ot]
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  8. #8
    sono funzioni che potrebbero tornare utili a molti in effetti!

    perché non le posti su www.php.net?
    io credo che la sezione giusta dove postarli sia questa
    http://it2.php.net/mk_time

    ciao

  9. #9
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    è la sonnolenza, l'ora tarda (o presto per la mattina), i wattmetri oppure questo 3d è terribilmente fortunato prima Piero adesso bubu77.. mi lacrimano gli occhi... grazie per l'apprezzamento, adesso vedo un pò se trovo il coraggio d ficcarla lì.. per il momento spero di offrire il mio piccolo contributo a questa comunità di "gente simpatica"...

    ps: sinceramente mi metto un pochettino "scuorno" di postarla su php.net.. lì ce ne sono una marea di veramente complete.. la mia ha ancora molta strada da percorrere ma chi è alla ricerca di una cosa "maniarella" penso si possa anke accontentare..

    grazie ancora per l'incoraggiamento e spero davvero possa essere utile a qualcuno..

    forse è il caso di andare a nanna..

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  10. #10
    Frena un attimo... la seconda funzione cosi' come la esprimi e' una bufala. Se a differenza della prima questa esprime valori assoluti (piu' o meno) di ore, minuti secondi allora la stringa che l'accompagna e' inadeguata.

    Se eseguo cosi' come postato da te la risposta e':
    codice:
    mancano 0 giorni 9 ore 18 min 12 sec
    mancano 0 giorni 9 ore 558 min 33492 sec
    E' chiaro che si puo' supporre che vorresti dare valori assoluti (meno il resto) e quindi dovresti correggere la stringa usata, altrimenti la funzione viene considerata errata. Specie perche' si tratta di un esempio che si presume debba essere esemplificativo dell'uso.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.