Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Calcolo dei giorni fra due date

    Egregi,
    per me che sono un principiante è un problema bello tosto ...
    Come si fa a calcolare quanti giorni ci sono fra una data A e una data B (formato d n Y)??

    Ho provato varie cose con strtotime, tipo:
    codice:
    $numero_giorni = strtotime("$data_b -$data_a days");
    ... se qualcuno potesse darmi una mano ...
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122

    Re: Calcolo dei giorni fra due date

    Originariamente inviato da Robotron
    Egregi,
    per me che sono un principiante è un problema bello tosto ...
    Come si fa a calcolare quanti giorni ci sono fra una data A e una data B (formato d n Y)??

    Ho provato varie cose con strtotime, tipo:
    codice:
    $numero_giorni = strtotime("$data_b -$data_a days");
    ... se qualcuno potesse darmi una mano ...
    Grazie!
    ma $data_b e $data_a come sono fatte??
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  3. #3
    Sì, scusa ... Le date sono in formato 10 9 2005, sono composte con i valori inviati da menu a tendina per giorno, mese e anno, con
    codice:
    date('d n Y',strtotime("$anno-$mese-$giorno"))

  4. #4
    Utente di HTML.it L'avatar di Nix82
    Registrato dal
    Oct 2001
    residenza
    Mussolente (VI)
    Messaggi
    1,122
    allora io farei una cosa di questo genere:

    Codice PHP:
    $date_a '10 9 2003'//data a caso
    $date_b '26 4 2005'//data a caso

    $array_a explode(' ' $date_a);
    $array_b explode(' ' $date_b);

    $first_days = ($array_b[0] - $array_a[0]);
    $second_months = ($array_b[1] - $array_a[1]) * 30.42//media dei giorni in un mese
    $third_years = ($array_b[2] - $array_b[2]) * 365;

    $total_days = (int)($first_days $second_months $third_years); 
    e $total_days è quello che cerchi!
    Il mio metodo arrotonda un pochino ma al massimo sbagli di un giorno!
    Di sicuro c'è un altro metodo estremamente più semplice ma non lo conosco
    La cultura è il nostro passaporto per il domani. Il futuro appartiene alle persone che si preparano oggi.
    Martin Luther King

  5. #5
    Per calcolare quanti secondi ci sono fra una data A e una data B
    $secondi=$data_A-$data_B
    In un giorno ci sono 86400 secondi (60x60x24)
    Dunque:
    $giorni=$secondi/86400

  6. #6
    ... grande! Ti ringrazio infinitamente, Nix82!

  7. #7
    Originariamente inviato da Nix82
    allora io farei una cosa di questo genere:

    Codice PHP:
    $date_a '10 9 2003'//data a caso
    $date_b '26 4 2005'//data a caso

    $array_a explode(' ' $date_a);
    $array_b explode(' ' $date_b);

    $first_days = ($array_b[0] - $array_a[0]);
    $second_months = ($array_b[1] - $array_a[1]) * 30.42//media dei giorni in un mese
    $third_years = ($array_b[2] - $array_b[2]) * 365;

    $total_days = (int)($first_days $second_months $third_years); 
    e $total_days è quello che cerchi!
    Il mio metodo arrotonda un pochino ma al massimo sbagli di un giorno!
    Di sicuro c'è un altro metodo estremamente più semplice ma non lo conosco
    Come mai un problema cosi facile?
    Fate cosi:
    Per calcolare quanti secondi ci sono fra una data A e una data B
    $secondi=$data_A-$data_B
    In un giorno ci sono 86400 secondi (60x60x24)
    Dunque:
    $giorni=$secondi/86400

  8. #8
    Originariamente inviato da Mike Nissa
    Come mai un problema cosi facile?
    Fate cosi:
    Per calcolare quanti secondi ci sono fra una data A e una data B
    $secondi=$data_A-$data_B
    In un giorno ci sono 86400 secondi (60x60x24)
    Dunque:
    $giorni=$secondi/86400
    Non hai letto bene evidentemente....
    Le date sono in formato 10 9 2005, sono composte con i valori inviati da menu a tendina per giorno, mese e anno
    Chissa' che numero vien fuori in $secondi... .



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

  9. #9
    Originariamente inviato da piero.mac
    Non hai letto bene evidentemente....

    Chissa' che numero vien fuori in $secondi... .



    Si deve fare prima una conversione:
    $data_A=date('d n Y',strtotime("$giorno_A $mese_A $anno_A"))
    $data_B=date('d n Y',strtotime("$giorno_B $mese_B $anno_B"))


    Attenzione:
    j -> giorno (1 a 31)
    d -> giorno (01 a 31)
    m -> mese (01 a 12)
    n -> mese (1 a 12)
    y -> anno con due cifre (70 a 99)
    Y -> anno con quattro cifre (1970 a 9999)



    $secondi=$data_B-$data_A
    In un giorno ci sono 86400 secondi (60x60x24)
    Dunque:
    $giorni=$secondi/86400

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.