Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    57

    Differenza tra due date non negativa

    Ciao,

    devo realizzare una funzione che, in Wordpress, mostri i giorni che mancano alla data scritta in un campo personalizzato chiamato "scade" in formato GG/MM/AAAA.

    Ho realizzato il seguente script:

    Codice PHP:
    <?php if (get_post_meta($post->ID,'scade',true)) { 
            
    $data=explode('/',get_post_meta($post->ID,'scade',true));
            
    $data=array_reverse($data);
            
    $data=implode($data,'-');
            echo(
    '[b]Stato: [/b]'.datediff($data,date('Y-m-d')).'
    '
    ); 
            } 
    ?>

    <?php
        
    function datediff($date1,$date2,$format='d'){
        
    $difference abs(strtotime($date2) - strtotime($date1));
            switch (
    strtolower($format)){
            case 
    'd':
            
    $days round((($difference/60)/60)/24,0);
            break;
            case 
    'm':
            
    $days round(((($difference/60)/60)/24)/30,0);
            break;
            case 
    'y':
            
    $days round(((($difference/60)/60)/24)/365,0);
            break;
            }
        
        return 
    $days;
        }
    ?>
    Il problema è che anche se la data specificata nel campo personalizzato è passata, il numero di giorni visualizzato è positivo! C'è un modo per renderlo negativo? Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    57
    Nessuno può aiutarmi?

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    lui ti da una dufferenza, è normale che non ti dia il segno....

    supponendo la differenza tra 10 e 2, la differenza è 8.

    ma anche tra 2 e -6 la differenza è 8 ...

    indi per cui potresti solo fare così

    Codice PHP:
    return $days*-1
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    57
    Sì, ma in questo modo me la dà negativa anche quando dev'essere positiva.

    Ecco un esempio di quello che voglio, per intenderci:

    Data di oggi: 08/12/2009

    - Se nel campo personalizzato c'è 10/12/2009 voglio che esca 2.
    - Se nel campo personalizzato c'è 6/12/2009 voglio che esca -2.

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    <?php if (get_post_meta($post->ID,'scade',true)) {
            
    $data=explode('/',get_post_meta($post->ID,'scade',true));
            
    $data=array_reverse($data);
            
    $data=implode($data,'-');
            echo(
    '[b]Stato: [/b]'.datediff($data,date('Y-m-d')).'
    '
    );
            }
    ?>

    <?php
        
    function datediff($date1,$date2,$format='d'){
        
    $difference abs(strtotime($date2) - strtotime($date1));
            switch (
    strtolower($format)){
            case 
    'd':
            
    $days round((($difference/60)/60)/24,0);
            break;
            case 
    'm':
            
    $days round(((($difference/60)/60)/24)/30,0);
            break;
            case 
    'y':
            
    $days round(((($difference/60)/60)/24)/365,0);
            break;
            }
        
        return (
    strtotime($date1) > strtotime($date2))?$days:$days*-1;
        }
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Originariamente inviato da FSoft
    Nessuno può aiutarmi?
    prova questo:

    Codice PHP:
    <?php
    $datai 
    '2009-12-15';
    $dataf '2009-12-25';

        
    $da explode('-'$datai);
        
    $a explode('-'$dataf); 

        
    $giorni_da date('z'mktime(0,0,0$da[1], $da[2], $da[0]));  
        
    $giorni_a  date('z'mktime(0,0,0$a[1], $a[2], $a[0]));

    if(
    $da[0] < $a[0])  {
      echo (
    365 $giorni_da) + ($giorni_a);
      } else { echo 
    $giorni_a $giorni_da; }

    ?>
    tiene conto anche di date a cavalcioni dell'anno

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    57
    Grazie a entrambi.

    @piero.mac: Che significa date a cavalcioni dell'anno?

  8. #8
    Originariamente inviato da FSoft
    Grazie a entrambi.

    @piero.mac: Che significa date a cavalcioni dell'anno?
    da: 2009-12-24
    a: 2010-01-25

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    57
    OK, adesso scusate se chiedo troppo , ma esiste un codice in Wordpress che consenta di modificare il titolo di un post.

    La mia idea sarebbe quella di modificare il titolo dei post a seconda della data specificata in un campo personalizzato.

    Ho provato a cercare su Internet, ma non ho trovato nulla

  10. #10
    Originariamente inviato da FSoft
    OK, adesso scusate se chiedo troppo , ma esiste un codice in Wordpress che consenta di modificare il titolo di un post.

    La mia idea sarebbe quella di modificare il titolo dei post a seconda della data specificata in un campo personalizzato.

    Ho provato a cercare su Internet, ma non ho trovato nulla
    cambia il post ed anche il forum. Prova a postare il quesito nel forum CMS

    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 © 2025 vBulletin Solutions, Inc. All rights reserved.