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

    Trovare la data di " ieri "

    Ciao,
    ho uno script che estrae una serie di date da un db.
    Se la data è antecedente ad oggi, devo colorarla in blu, altrimenti devo colorarla in modo diverso.

    Ho fatto un confronto tra l'unix_timestamp() della data estratta da mysql e mktime:
    if($data_unix < mktime())

    il problema è che cosi considera come antecedente anche la giornata di oggi.

    come posso risolvere? come posso trovare il timestamp del giorno precedente a quello di turno?

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    puoi effettuare il controllo direttamente da mysql, facendoti restituire un campo con 1 o 0 a seconda del valore.

    think simple think ringo

  3. #3
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    SELECT IF(
    FROM_UNIXTIME(data,'%d-%m-%Y') < CURDATE(),0,1) AS veririca FROM tabella;
    think simple think ringo

  4. #4

    Re: Trovare la data di " ieri "

    Originariamente inviato da l'evangelista
    Ciao,
    ho uno script che estrae una serie di date da un db.
    Se la data è antecedente ad oggi, devo colorarla in blu, altrimenti devo colorarla in modo diverso.

    Ho fatto un confronto tra l'unix_timestamp() della data estratta da mysql e mktime:
    if($data_unix < mktime())

    il problema è che cosi considera come antecedente anche la giornata di oggi.

    come posso risolvere? come posso trovare il timestamp del giorno precedente a quello di turno?
    Il timestamp non va bene per questo tipo di confronto. un secondo in meno ed gia' ieri...

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

  5. #5
    forse mi sono spiegato male.
    Codice PHP:
        $sql="select id_estrazione, date_format(data, '%d - %m -%Y') as data_formattata, unix_timestamp(data) as data_ts from lotto_calendario_estrazioni order by data";
    $result=mysql_query($sql) or die(mysql_error());
    while(
    $row_estrazioni mysql_fetch_array($result)){
      
    $id_data_estrazione $row_estrazioni['id_estrazione'];
      
    $data_estrazione $row_estrazioni['data_formattata'];
      
    $data_unix $row_estrazioni['data_ts'];
      if(
    $data_unix mktime()){
        echo 
    "questa è passata: ";
      }
      echo 
    $data_estrazione."
    "
    ;

    se $data_unix è quella di oggi, facendo il confronto con mktime, questa risulta comumque minore e quindi "passata".
    Vorrei che invece la data di oggi non risultasse passata se non dopo la mezzanotte.

  6. #6
    Originariamente inviato da marketto
    codice:
    SELECT IF(
    FROM_UNIXTIME(data,'%d-%m-%Y') < CURDATE(),0,1) AS veririca FROM tabella;
    ok grazie provo

  7. #7
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da l'evangelista
    ok grazie provo
    il campo nel db è già 'date', puoi togliere FROM_UNIXTIME dalla query
    think simple think ringo

  8. #8
    Originariamente inviato da marketto
    il campo nel db è già 'date', puoi togliere FROM_UNIXTIME dalla query
    perfetto funge grazie tante!!!

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.