Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2020
    residenza
    Bassano del Grappa
    Messaggi
    1

    Formattazione testo con PHP.

    Buongiorno.
    Ho provato a dare un'occhiata all'interno del forum, ma non mi sembra di aver visto niente di simile a quello di cui ho bisogno io.
    Da un database, estraggo una serie di dati anagrafici di alcune persone (codice fiscale, cognome, nome, telefono, email, ecc.) ed in particolare una data in formato testo. Tramite una funzione, la riconverto in data e calcolo la differenza giorni dalla data attuale (ad esempio, l'utente Mario Rossi ha effettuato l'ultimo accesso il giorno 26/03/2019, quindi la differenza tra quel giorno ed oggi è 853 giorni). Avrei bisogno di creare una specie di "formattazione condizionale" come quella che si può creare in Excel. Un esempio pratico può essere: se la differenza è minore di 90 giorni, il numero di giorni dev'essere scritto di colore rosa, se è tra 91 e 180 dev'essere scritto in verde, oltre dev'essere scritto con un altro colore e così via. In totale, avrei bisogno di creare 6 formattazioni diverse.
    Qualcuno può darmi qualche dritta?
    Grazie.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Benvenuto, se sei già in grado di contare il numero di giorni di differenza, ti basta fare una cosa del tipo
    Codice PHP:
    $diff_giorni il calcolo che fai ora per ottenere tale numero;

    if ( 
    $diff_giorni 90 ) { $color '#ff9090'; }
    else if ( 
    $diff_giorni 180 ) { $color '#00ff00'; }
    ....
    else { 
    $color '#....'; }

    // dove stampi il dato
    echo '<span style="color:' $colore ';">' $diff_giorni '</span>'

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2020
    Messaggi
    38
    Ciao alexxandrop
    Quanto suggerito da
    Alhazred è corretto ma io farei direttamente tutto nella query tramite i CASE


    CASE
    WHEN (DATEDIFF(NOW(), STR_TO_DATE(yourdatefield, '%Y-%m-%d')) BETWEEN 0 AND 90 THEN '#FF9090'
    WHEN (DATEDIFF(NOW(), STR_TO_DATE(yourdatefield, '%Y-%m-%d')) BETWEEN 91 AND 180 THEN '#00FF00'
    etc..fino ad arrivare all'ultimo caso che sarà così

    WHEN (DATEDIFF(NOW(), STR_TO_DATE(yourdatefield, '%Y-%m-%d')) > 800 THEN '#00FF00'
    END AS bgcolor

    così da avere già tutto "pronto"

Tag per questa discussione

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