Pagina 2 di 2 PrimoPrimo 12
Visualizzazione risultati 31 fino 43 di 43
Like Tree4Likes

Discussione: Visualizzare zodiaco

  1. #31
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    e questo?


    Codice PHP:
    $datanascita = $row['birthday'];
    Codice PHP:

    <?php
    require_once ("../funzioni/astro.php");

    //row['birthday']; ('2020/05/31' è solo per test)
    $datanascita = $row['birthday'];

    // scorporo data in GIORNO e MESE
    $day = (int) date('j',strtotime($datanascita));
    $month = (int) date('n',strtotime($datanascita));
    echo(
    getsign($day, $month));


    ?>
    Ultima modifica di blackskyisback : 31-08-2020 alle ore 20.21.04

  2. #32
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Codice PHP:
    $date = new DateTime($row['birthday'], new DateTimeZone('UTC'));
    $day = (int) $date->format('j');
    $month = (int) $date->format('n');
    echo
    getsign($day, $month);

  3. #33
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    il risultato rimane invariato anche dopo la modifica

    Birthday

    1998-12-22

    risultato: Sagittarius - Sagittario (23 novembre-21 dicembre)

    Codice PHP:
    if(($month==11 && $day>22)||($month==12 && $day<23)) {
    $mysign = "Sagittarius";
    }
    dovrebbe essere

    Capricorn - Capricorno (22 dicembre-20 gennaio)

    Codice PHP:
    if(($month==12 && $day>22)||($month==1 && $day<21)) {
    $mysign = "capricorn";
    }

    quale di questi 2 codici e' esatto, perche' quello modificato con Wikipedia non funziona?

    questo funziona

    Codice PHP:

    <?php // visualizza i segni zodiaci in base al calcolo del mese sul campo birthday

    function getsign($day,$month) {
    if((
    $month==1 && $day>20)||($month==2 && $day<20)) {
    $mysign = "aquarius";
    }
    if((
    $month==2 && $day>18 )||($month==3 && $day<21)) {
    $mysign = "pisces";
    }
    if((
    $month==3 && $day>20)||($month==4 && $day<21)) {
    $mysign = "aries";
    }
    if((
    $month==4 && $day>20)||($month==5 && $day<22)) {
    $mysign = "taurus";
    }
    if((
    $month==5 && $day>21)||($month==6 && $day<22)) {
    $mysign = "gemini";
    }
    if((
    $month==6 && $day>21)||($month==7 && $day<24)) {
    $mysign = "cancer";
    }
    if((
    $month==7 && $day>23)||($month==8 && $day<24)) {
    $mysign = "leo";
    }
    if((
    $month==8 && $day>23)||($month==9 && $day<24)) {
    $mysign = "Virgo" . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Virgo1.png" width="15px" height="15px"></img>'
    . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Virgo2.png" width="15px" height="15px"></img>';
    }
    if((
    $month==9 && $day>23)||($month==10 && $day<24)) {
    $mysign = "libra";
    }
    if((
    $month==10 && $day>23)||($month==11 && $day<23)) {
    $mysign = "scorpio";
    }
    if((
    $month==11 && $day>22)||($month==12 && $day<23)) {
    $mysign = "Sagittarus" . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Sagittarius1.png" width="15px" height="15px"></img>'
    . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Sagittarius2.png" width="15px" height="15px"></img>';
    }
    if((
    $month==12 && $day>22)||($month==1 && $day<21)) {
    $mysign = "capricorn";
    }
    return
    $mysign;
    }

    ?>

    Questo e' l'altro codice con le date dei mesi prese da Wikipedia, ma sembra che non funziona su alcuni mesi

    Codice PHP:

    <?php // visualizza i segni zodiaci in base al calcolo del mese sul campo birthday

    ///La sequenza

    //La sequenza nasce dall'intersezione tra i 4 elementi e i 3 tipi, esaurendo in particolare ogni possibile combinazione.
    // Segno Durata
    // Aries - Ariete 21 marzo-20 aprile
    // Taurus - Toro 21 aprile-20 maggio
    // Gemini - Gemelli 21 maggio-21 giugno
    // Cancer - Cancro 22 giugno-22 Luglio
    // Lion - Leone 23 luglio-23 agosto
    // Virgo - Vergine 24 agosto-22 settembre
    // Libra - Bilancia 23 settembre-22 ottobre
    // Scorpio- Scorpione 23 ottobre-22 novembre
    // Sagittarius - Sagittario 23 novembre-21 dicembre
    // Capricorn - Capricorno 22 dicembre-20 gennaio
    // Aquario - Aquarius 21 gennaio-19 febbraio
    // Pisces - Pesci 20 febbraio-20 marzo

    function getsign($day,$month) {

    // Aquario - Aquarius 21 gennaio-19 febbraio
    if(($month==1 && $day>21)||($month==2 && $day<19)) {
    $mysign = "aquarius";
    }
    // Pisces - Pesci 20 febbraio-20 marzo
    if(($month==2 && $day>20 )||($month==3 && $day<20)) {
    $mysign = "pisces";
    }
    // Aries - Ariete 21 marzo-20 aprile
    if(($month==3 && $day>21)||($month==4 && $day<20)) {
    $mysign = "Aries";
    }
    // Taurus - Toro 21 aprile-20 maggio
    if(($month==4 && $day>21)||($month==5 && $day<20)) {
    $mysign = "taurus";
    }
    // Gemini - Gemelli 21 maggio-21 giugno
    if(($month==5 && $day>21)||($month==6 && $day<21)) {
    $mysign = "Gemini - Gemelli (21 maggio-21 giugno)". '&nbsp;&nbsp;'
    . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Gemini1.png" width="15px" height="15px"></img>'
    . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Gemini2.png" width="20px" height="20px"></img>'
    ;
    }
    // Cancer - Cancro 22 giugno-22 Luglio
    if(($month==6 && $day>22)||($month==7 && $day<22)) {
    $mysign = "cancer";
    }
    // Lion - Leone 23 luglio-23 agosto
    if(($month==7 && $day>23)||($month==8 && $day<23)) {
    $mysign = "leo";
    }
    // Virgo - Vergine 24 agosto-22 settembre
    if(($month==8 && $day>24)||($month==9 && $day<22)) {
    $mysign = "Virgo" . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Virgo1.png" width="15px" height="15px"></img>'
    . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Virgo2.png" width="15px" height="15px"></img>';
    }
    // Libra - Bilancia 23 settembre-22 ottobre
    if(($month==9 && $day>23)||($month==10 && $day<22)) {
    $mysign = "libra";
    }
    // Scorpio- Scorpione 23 ottobre-22 novembre
    if(($month==10 && $day>23)||($month==11 && $day<22)) {
    $mysign = "scorpio";
    }
    // Sagittarius - Sagittario 23 novembre-21 dicembre
    if(($month==11 && $day>23)||($month==12 && $day<21)) {
    $mysign = "Sagittarus" . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Sagittarius1.png" width="15px" height="15px"></img>'
    . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Sagittarius2.png" width="15px" height="15px"></img>';
    }
    // Capricorn - Capricorno 22 dicembre-20 gennaio
    if(($month==12 && $day>22)||($month==1 && $day<20)) {
    $mysign = "capricorn";
    }

    return
    $mysign;

    }

    ?>

  4. #34
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,980

    Predefinito

    Quello di wiki, predendone uno come esmpio:
    Codice PHP:
    // Aquario - Aquarius 21 gennaio-19 febbraio
    if(($month==1 && $day>21)||($month==2 && $day<19)) {
    $mysign = "aquarius";
    }
    Se il periodo è dal 21 Gennaio al 19 Febbraio, così come è impostato nel codice, indica un periodo dal 22 gennaio al 18 febbraio.

    Dovrebbe essere così, per indicare il periodo giusto.
    Codice PHP:
    // Aquario - Aquarius 21 gennaio-19 febbraio
    if(($month==1 && $day>20)||($month==2 && $day<20)) {
    $mysign = "aquarius";
    }
    dovrebbe essere

    Capricorn - Capricorno (22 dicembre-20 gennaio)
    Infatti, provando la data menzionata dalei con i valori modificati nel codice, restituisce il segno del Capricorno.
    Codice PHP:
    function getsign($day,$month) {

    // Aquario - Aquarius 21 gennaio-19 febbraio
    if(($month==1 && $day>20)||($month==2 && $day<20)) {
    $mysign = "aquarius";
    }
    // Pisces - Pesci 20 febbraio-20 marzo
    if(($month==2 && $day>19 )||($month==3 && $day<21)) {
    $mysign = "pisces";
    }
    // Aries - Ariete 21 marzo-20 aprile
    if(($month==3 && $day>20)||($month==4 && $day<21)) {
    $mysign = "Aries";
    }
    // Taurus - Toro 21 aprile-20 maggio
    if(($month==4 && $day>20)||($month==5 && $day<21)) {
    $mysign = "taurus";
    }
    // Gemini - Gemelli 21 maggio-21 giugno
    if(($month==5 && $day>20)||($month==6 && $day<22)) {
    $mysign = "Gemini - Gemelli (21 maggio-21 giugno)". '&nbsp;&nbsp;'
    . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Gemini1.png" width="15px" height="15px"></img>'
    . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Gemini2.png" width="20px" height="20px"></img>'
    ;
    }
    // Cancer - Cancro 22 giugno-22 Luglio
    if(($month==6 && $day>21)||($month==7 && $day<23)) {
    $mysign = "cancer";
    }
    // Lion - Leone 23 luglio-23 agosto
    if(($month==7 && $day>22)||($month==8 && $day<24)) {
    $mysign = "leo";
    }
    // Virgo - Vergine 24 agosto-22 settembre
    if(($month==8 && $day>23)||($month==9 && $day<23)) {
    $mysign = "Virgo" . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Virgo1.png" width="15px" height="15px"></img>'
    . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Virgo2.png" width="15px" height="15px"></img>';
    }
    // Libra - Bilancia 23 settembre-22 ottobre
    if(($month==9 && $day>22)||($month==10 && $day<23)) {
    $mysign = "libra";
    }
    // Scorpio- Scorpione 23 ottobre-22 novembre
    if(($month==10 && $day>22)||($month==11 && $day<23)) {
    $mysign = "scorpio";
    }
    // Sagittarius - Sagittario 23 novembre-21 dicembre
    if(($month==11 && $day>22)||($month==12 && $day<22)) {
    $mysign = "Sagittarus" . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Sagittarius1.png" width="15px" height="15px"></img>'
    . '&nbsp;&nbsp;' . '<img src="http://forum.it.altervista.org/image_upload/zodiac/Sagittarius2.png" width="15px" height="15px"></img>';
    }
    // Capricorn - Capricorno 22 dicembre-20 gennaio
    if(($month==12 && $day>21)||($month==1 && $day<21)) {
    $mysign = "capricorn";
    }
    return
    $mysign;
    }
    Cordiali saluti.
    blackskyisback likes this.

  5. #35
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Interessante, sembra funzionare

    non ho capito la logica di togliere ed aggiungere un giorno pero'

  6. #36
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,980

    Predefinito

    La logica è semplice.

    Se si pone una variabile maggiore di un valore, tale valore non sarà preso in considerazione. Ovvero saranno presi solo i valori superiori.
    Se si pone una variabile minore di un valore, tale valore non sarà preso in considerazione. Ovvero saranno presi solo i valori inferiori.

    Comunuqe, in alternativa, se si vuole lasciare i numeri invariati, si può mettere >= e <=, il risultato e lo stesso.

    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 01-09-2020 alle ore 13.51.20

  7. #37
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Citazione Originalmente inviato da GraphOGLRisorse Visualizza messaggio
    La logica è semplice.

    Se si pone una variabile maggiore di un valore, tale valore non sarà preso in considerazione. Ovvero saranno presi solo i valori superiori.
    Se si pone una variabile minore di un valore, tale valore non sarà preso in considerazione. Ovvero saranno presi solo i valori inferiori.

    Cordiali saluti.


    piu' confuso di prima


    comunque grazie a lei ,e a tutti ovviamente

    ps GraphOGLRisorse: lo ha letto l'altro thread? le ho scritto

  8. #38
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,980

    Predefinito

    No non me n'ero accorto, comunque l'ho letto adesso.

    Le rispondo sull'altra discussione per non adare fuori tema.

    Cordiali saluti.

  9. #39
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Rieccomi, ho notato una strana cosa,

    se inserisco una data con solo l'anno , senza mese e giorno, mi restituisce sempre Sagittarus

    esempio:

    2008-00-00 risultato Sagittarus

    2009-00-00 risultato Sagittarus

    ecc...

    si potrebbe fare in modo che se e' presente solo l'anno venga visualizzato un messaggio simile:

    Zodiaco non e' presente

    Grazie

  10. #40
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Codice PHP:
    $datanascita = isset($row['birthday']) ? $row['birthday'] : null;
    if(
    strlen($datanascita) == 10 && ((int) substr($datanascita, 0, 4)) && ((int) substr($datanascita, 5, 2)) && ((int) substr($datanascita, 8, 2))) {
    $date = new DateTime($datanascita, new DateTimeZone('UTC'));
    $day = (int) $date->format('j');
    $month = (int) $date->format('n');
    echo
    getsign($day, $month);
    } else {
    echo
    'datanascita assente';
    }
    Il mese e giorno zero non esiste, $row['birthday'] può contenere anche solo l'anno oppure assente(in mysql significa valore null) ecco gli (esempi: 2020, 1970, 70 etc.)? se invece hai anche gli zeri il codice da me proposto ovviamente non funziona ma sono sicuro ti sarai espresso male e non usi gli zeri.
    Post editato per il mode NO_ZERO_IN_DATE/NO_ZERO_DATE disattivato e possibilmente strict mode disabilitato.
    Uhm se stai usando il tipo DATE probabilmente UTC non riflette la data corretta sto implementando il codice.
    Ultima modifica di darbula : 01-09-2020 alle ore 15.34.24
    blackskyisback likes this.

  11. #41
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Ciao darbula

    e cosi, anno con gli zeri, il campo birthday e di tipo date, anche se in mysql inserisco 2000 poi vengono aggiunti degli zero in automatico

    quindi 2000-00-00 (anno,mese, giorno)
    Ultima modifica di blackskyisback : 01-09-2020 alle ore 14.49.51

  12. #42
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Si è corretto per il tipo date di mysql, sto preparando il codice tra poco aggiorno.
    codice aggiornato http://forum.it.altervista.org/php-m...ml#post1454762
    Ultima modifica di darbula : 01-09-2020 alle ore 15.25.53

  13. #43
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    darbula funziona perfettamente

    Grazie tante

Pagina 2 di 2 PrimoPrimo 12

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •