Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Data in php

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2015
    Messaggi
    13

    Data in php

    Ho letto il manuale di php per la funzione time, mi chiedevo se oltre a stampare il timestamp in formato italiano, è possibile anche stampare dopo 24 la dicitura ad esempio "1 giorno fa" poi dopo una settimana "1 settimana fa" ecc

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2015
    Messaggi
    13
    Quote Originariamente inviata da _Marco_87 Visualizza il messaggio
    Mi pare che te le devi creare propio tu, oppure integri un qualcosa di pre-fatto.
    Io personalmente me la sono creata da solo la funzione e non posso passartela perchè la devo usare per lavoro.
    Il motivo per cui me la sono creata da solo è che non trovavo nulla di già fatto in rete, ma forse qui qualcuno ne sà più di me sull'argomento, e magari esiste per davvero, aspetta altri pareri...
    Grazie per la tua opinione, mi pare però poco scortese vantarsene di aver codato una funzione, non avresti nemmeno commentato. Cordiali saluti.

  3. #3
    Io utilizzo una funzione che avevo trovato qui, che ho tradotto e adattato per funzionare in italiano,.
    codice:
    function _ago($tm,$rcs = 0) {
        $cur_tm = time(); 
        $dif = $cur_tm-$tm;
        $pds = array('secondo','minuto','ora','giorno','settimana','mese','anno','secolo');
        $pdsp = array('secondi', 'minuti', 'ore', 'giorni', 'settimane', 'mesi', 'anni', 'secoli');
        $lngh = array(1,60,3600,86400,604800,2630880,31570560,315705600);
        for($v = sizeof($lngh)-1; ($v >= 0)&&(($no = $dif/$lngh[$v])<=1); $v--); if($v < 0) $v = 0; $_tm = $cur_tm-($dif%$lngh[$v]);
        $no = floor($no);
        if($no <> 1)
            $pds[$v] = $pdsp[$v];
        $x = sprintf("%d %s ",$no,$pds[$v]);
        if(($rcs == 1)&&($v >= 1)&&(($cur_tm-$_tm) > 0))
            $x .= time_ago($_tm);
            $x .= " fa";
        
        return $x;
    }
    Ultima modifica di livellacri; 18-06-2017 a 10:17

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    un esempio usando datetime:

    Codice PHP:
    function calculate_days_difference($datetime_start$datetime_to_compare) {
        
    $diff $datetime_start->diff($datetime_to_compare);
        
        
    $diff_days $diff->format("%a");
        
    $diff_sign $diff->format("%R");

        switch (
    true) {
            case 
    $diff_days 1:
                
    $day_tag "giorni";
                break;
            case 
    $diff_days == 1:
                
    $day_tag "giorni";
                break;
            case 
    $diff_days == and $diff_sign == "-":
                return 
    "oggi";
                break;
            case 
    $diff_days == and $diff_sign == "+":
                
    $day_tag "giorno";
                break;        
            default:
                return 
    "qualcosa è andato storto";
                break;
        }

        switch (
    $diff_sign) {
            case 
    '-':
                return 
    "$diff_days $day_tag fa";
            case 
    '+':
                
    $diff_days += 1;
                return 
    "tra $diff_days $day_tag";
            default:
                return 
    false;
        }
    }

    $datetimezone = new DateTimeZone("UTC");
    $now = new DateTime("now"$datetimezone);
    $date_to_compare = new DateTime("2017-06-17"$datetimezone);

    $diff $now->diff($date_to_compare);

    echo 
    "inizio: " $now->format("Y-m-d H:i:s") . "\n";
    echo 
    "fine: " $date_to_compare->format("Y-m-d H:i:s") . "\n";
    echo 
    $diff->format("%R%a giorni %h ore") . "\n";

    echo 
    calculate_days_difference($now$date_to_compare) . "\n";
    ?> 

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2015
    Messaggi
    13
    Ecco il codice che ho composto, visto che lei ha fatto il tirchio a non darmelo, era uno script semplicissimo da comporre, inoltre voglio dirle che questi tipi di codici si trovano in giro su Internet facilmente, non come lei reputa 'introvabili'. Cordiali Saluti.

    Codice PHP:
    function getCreationDateTimeSince($timestamp){
        
    $totaldelay time() - strtotime($timestamp);    {
            if(
    $years=floor($totaldelay/31536000))        { 
               
    $totaldelay $totaldelay 31536000;
                
    $getYear '';           
     if (
    $years 1)        
         
    $getYear=' anni fa';           
     else{           
     
    $getYear=' anno fa';           
     }            
    $timesince $timesince.$years.$getYear;          
      return 
    $timesince;        }             
       if(
    $months=floor($totaldelay/2628000))    
        {           
     
    $totaldelay $totaldelay 2628000;         
       
    $getMonth '';            if ($months 1)     
            
    $getMonth=' mesi fa';     
           else{          
      
    $getMonth=' mese fa';       
         }            
    $timesince $timesince.$months.$getMonth;   
             return 
    $timesince;      
      }              
      if(
    $days=floor($totaldelay/86400))      
      {       
         
    $totaldelay $totaldelay 86400;       
         
    $getDay '';      
          if (
    $days 1)       
          
    $getDay=' giorni fa';      
          else{      
          
    $getDay=' giorno fa';        
        }      
          
    $timesince $timesince.$days.$getDay;            return $timesince;        }               
     if(
    $hours=floor($totaldelay/3600))        {            $totaldelay $totaldelay 3600;            $getHour '';            if ($hours 1)             $getHour=' ore fa';            else{            $getHour=' ora fa';            }            $timesince $timesince.$hours.$getHour;            return $timesince;        }                if($minutes=floor($totaldelay/60))        {            $totaldelay $totaldelay 60;            $getMinute '';            if ($minutes 1)             $getMinute=' minuti fa';            else{            $getMinute=' minuto fa';            }            $timesince $timesince.$minutes.$getMinute;            return $timesince;        }                if($seconds=floor($totaldelay/1))        {            $totaldelay $totaldelay 1;            $getSecond '';            if ($seconds 1)             $getSecond=' secondi fa';            else{            $getSecond=' secondo fa';            }             $timesince $timesince.$seconds.$getSecond;            return $timesince;        }    }} 
    Ultima modifica di Kitt3000; 20-06-2017 a 13:08

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    secondo me, questo post non è mai apparso...

    Quote Originariamente inviata da clasku Visualizza il messaggio
    un esempio usando datetime:

    Codice PHP:
    function calculate_days_difference($datetime_start$datetime_to_compare) {
        
    $diff $datetime_start->diff($datetime_to_compare);
        
        
    $diff_days $diff->format("%a");
        
    $diff_sign $diff->format("%R");

        switch (
    true) {
            case 
    $diff_days 1:
                
    $day_tag "giorni";
                break;
            case 
    $diff_days == 1:
                
    $day_tag "giorni";
                break;
            case 
    $diff_days == and $diff_sign == "-":
                return 
    "oggi";
                break;
            case 
    $diff_days == and $diff_sign == "+":
                
    $day_tag "giorno";
                break;        
            default:
                return 
    "qualcosa è andato storto";
                break;
        }

        switch (
    $diff_sign) {
            case 
    '-':
                return 
    "$diff_days $day_tag fa";
            case 
    '+':
                
    $diff_days += 1;
                return 
    "tra $diff_days $day_tag";
            default:
                return 
    false;
        }
    }

    $datetimezone = new DateTimeZone("UTC");
    $now = new DateTime("now"$datetimezone);
    $date_to_compare = new DateTime("2017-06-17"$datetimezone);

    $diff $now->diff($date_to_compare);

    echo 
    "inizio: " $now->format("Y-m-d H:i:s") . "\n";
    echo 
    "fine: " $date_to_compare->format("Y-m-d H:i:s") . "\n";
    echo 
    $diff->format("%R%a giorni %h ore") . "\n";

    echo 
    calculate_days_difference($now$date_to_compare) . "\n";
    ?> 

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.