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

    funzione giorni mesi anni

    Salve ho fatto questa funzione per visualizzare la differenza tra 2 date in anni mesi e giorni:

    Codice PHP:
    function datadiff($datareg$lang){
        
        
    $arrdatareg=explode(" ",$datareg);
        
    $arrdatareg=explode("-",$datareg);
        
    $datareg=mktime(12,0,0,$arrdatareg[1],$arrdatareg[2],$arrdatareg[0]);
        
        
    $datatt=date("Y/m/d");
        
    $arrdatatt=explode("/",$datatt);
        
        
    $datatt=time();
        
        
    $diffdate=($datatt $datareg);
        
    $giorni=ceil(($diffdate 60 60 24) / 1);
        
    $mesi=floor(($diffdate 60 60 24) / (365 12)-12);
        
    $anni=floor(($diffdate 60 60 24) / 365);
        
        (
    $anni>1) ? $stringanno="anni" $stringanno="anno";
        (
    $mese>1) ? $stringmese="mesi" $stringmese="mese";
        
    $stringgiorno= ($giorni==1) ? "giorno" "giorni";
        
        if(
    $anni>0$string="$anni $stringanno, ";
        if(
    $mesi>0$string.="$mesi $stringmese e ";
        (
    $giorni>0) ? $string.="$giorni $stringgiorno$string="meno di 1 giorno $giorni";

    ora anni e mesi vanno bene ma giorni mi da naturalmente il totale dei giorni trascorsi ma a me servirebbe non il totale ma la somma entro i 30 giorni del mese ad esempio se oggi è 11 e la data precedente è 6 dovrebbe darmi 5 giorni trascorsi.

    Se la distanza è inferiore a 30 mi da il risultato giusto ma superiore a 30 no, ad esempio se sono trascorsi 45 giorni tra le 2 date mi dovrebbe dare 1 mese e 15 giorni mentre mi da 1 mese e 45 giorni (anche qui giustamente ma non so come dividere $giorni per farmi dare la differenza dei giorni).

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Codice PHP:

    function datadiff($datareg$lang){ 
         
        
    $arrdatareg=explode(" ",$datareg); 
        
    $arrdatareg=explode("-",$datareg); 
        
    $datareg=mktime(12,0,0,$arrdatareg[1],$arrdatareg[2],$arrdatareg[0]); 
         
        
    $datatt=date("Y/m/d"); 
        
    $arrdatatt=explode("/",$datatt); 
         
        
    $datatt=time(); 
         
        
    $diffdate=($datatt $datareg); 
        
    $giorni=ceil(($diffdate 60 60 24) / 1); 
        
    $mesi=floor(($diffdate 60 60 24) / (365 12)-12); 
        
    $anni=floor(($diffdate 60 60 24) / 365); 
         
        (
    $anni>1) ? $stringanno="anni" $stringanno="anno"
        (
    $mese>1) ? $stringmese="mesi" $stringmese="mese"
       
         
        if(
    $anni>0$string="$anni $stringanno, "
        if(
    $mesi>0)
        {
                 
    $string.="$mesi $stringmese e "
                 
    $giorni=date("i",$datareg);
        }
        
    $stringgiorno= ($giorni==1) ? "giorno" "giorni"
        (
    $giorni>0) ? $string.="$giorni $stringgiorno$string="meno di 1 giorno $giorni"

    prova così

  3. #3
    e a che mi serve conteggiare i minuti???

    $giorni=date("i",$datareg);

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Scusa volevo dire
    Codice PHP:
    $giorni=date("j",$datareg); 
    cmq non ne sono sicuro prova ^_^

  5. #5
    a si ora si ma anche con j non risolvo il problema perchè j mi da il giorno della data non la differenza dei giorni tra una data e la'ltra

  6. #6
    ma per fare la differenza tra 2 date non è più semplice lavorare con una semplice sottrazione tra gli mktime delle date in base al risultato usare un if, uno switch ecc???

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.