Visualizzazione risultati 1 fino 7 di 7

Discussione: [PHP] Calcolare numeri giorni avendo due date ed eventualmente mesi diversi

  1. #1
    Guest

    Predefinito [PHP] Calcolare numeri giorni avendo due date ed eventualmente mesi diversi

    Come da titolo vorreri sapere come posso calcolare il numeri dei giorni che indicano la durata di un evento avendo due date.
    Supponendo di avere la data d'inizio di un evento il 28/03/2010 e la fine il 2/04/2010 come posso fare?
    Ovviamente non è possibile farla con una semplice sottrazione, ma non mi vengono idee a riguardo...

    Grazie in anticipo

  2. #2
    Guest

    Predefinito

    mktime() e strtotime()
    e qui leggi come gestire le date :)

    Ps.: riassumendo( link a script di esempio): trasformi la data in timestamp e fai le operazioni che vuoi, poi ritrasformi :)

  3. #3
    Guest

    Predefinito

    Il link d'esempio l'avevo già visto e mi da un valore negativo, non capisco il perché!

    Quindi dovrei passare a strtotime() la funzione date() con il timestamp del database mostrando la data nel formato "inglese" con Giorno, Mese, Anno e poi però non so cosa fare...

    Non voglio dare l'impressioni di voler la pappa pronta, ma vorrei capire bene come poter usare le funzioni!

    Grazie come sempre comunitavirtuali

  4. #4
    Guest

    Predefinito

    In effetti è un po' incasinato in quel link... :)

    Codice PHP:
    <?php
    function giorni($datafine, $datainizio)
    {
    //explode() divide il contenuto delle date
    $date_1=explode("-", $datainizio);
    $date_2=explode("-", $datafine);
    //gregoriantojd() Converte dal calendario gregoriano a quello giuliano
    $inizio=gregoriantojd($date_1[1], $date_1[2], $date_1[0]);
    $fine=gregoriantojd($date_2[1], $date_2[2], $date_2[0]);
    return
    $fine - $inizio;
    }
    echo
    giorni('2010-04-04','2010-03-28');
    ?>

  5. #5
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Codice PHP:
    echo floor((strtotime('04/02/2010') - strtotime('03/28/2010')) / 86400);
    Ciao!

  6. #6
    Guest

    Predefinito

    Grazie programmazioned, è molto più semplice come sistema e funziona
    Ovviamente grazie pure a te comunitavirtuali

  7. #7
    Guest

    Predefinito

    nel caso volessi approfondire : http://www.ebug.it/?p=122 ciao

Regole di scrittura

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