Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Confronto date

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034

    Confronto date


    estraggo sei date dalla tabella (...order by data desc). In pratica dovrei vedere se la prima data estratta (che, ovviamente, è la più recente delle altre) è superiore di N giorni alla data di oggi.
    posso usare strtotime ma come faccio il confronto con il primo record estratto?

  2. #2
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    io farei una differenza tra i timestamp e poi controllerei il numero risultante, tenendo conto che x giorni corrispondono a 60*60*24*x secondi
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    la data (campo INT) la estraggo e stampo con

    $data_inc = $row_inc['data'];
    echo "data: " . date("d/m/y", $data_inc) . "";

  4. #4
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    invece di stamparla sottraila al time() e vedi se il numero di secondi è superiore a quelli di x giorni
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    facendo così mi sa che è sbagliato
    Codice PHP:
    $oggi date("d/m/y"$data_inc) - time();

    if (
    $oggi '518400') {//6 giorni
    $diff "ok";
    } else {
    $diff "error";

    ma il confronto con quale delle sei date estratte lo fa?

  6. #6
    [supersaibal]Originariamente inviato da meganoide
    facendo così mi sa che è sbagliato
    Codice PHP:
    $oggi date("d/m/y"$data_inc) - time();

    if (
    $oggi '518400') {//6 giorni
    $diff "ok";
    } else {
    $diff "error";

    ma il confronto con quale delle sei date estratte lo fa? [/supersaibal]
    time() - date("d/m/y", $data_inc)
    e non il contrario.
    ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    ok, ma come faccio a fare questo confronto soltanto con la prima delle sei date estratte?

  8. #8
    [supersaibal]Originariamente inviato da meganoide
    ok, ma come faccio a fare questo confronto soltanto con la prima delle sei date estratte? [/supersaibal]
    estrai un record... esegui la if e poi continui con il ciclo while.

    $row = mysql_fetch_assoc($resource);

    if(che ti pare)

    while ($row= mysql_fetch_assoc($resource)) {

    estrai le altre righe...

    }

    Il primo result set passa tramite il controllo della if, gli altri no.


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

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    però nel mio caso devo fare obbligatoriamente anche un'altra query dopo, ma continua a stampare "new" per tutti e sei i record estratti:

    Codice PHP:
    $result_inc0 mysql_query("SELECT data FROM $db_tab ORDER BY data DESC LIMIT 1"$db);
    $row_inc0 mysql_fetch_assoc($result_inc0);

    $data_inc0 $row_inc0['data'];

    $oggi time() - date("d/m/y"$data_inc0);
    if (
    $oggi '518400') {//6 giorni
    $diff "new";
    } else {
    $diff "";
    }

    ///////////////////////////////////////////////////

    $result_inc mysql_query("$myquery FROM tab ORDER BY data DESC LIMIT $max_tit"$db);
    while(
    $row_inc mysql_fetch_array($result_inc)){

    $id_inc $row_inc['id'];
    $data_inc $row_inc['data'];
    $titolo_inc $row_inc['titolo'];

    echo 
    "$diff | $titolo_inc ecc. ecc.; 
    stampa sei record e, per ognuno di essi, la scritta New

  10. #10
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    non hai molto ben chiaro il concetto di timestamp, eh?

    codice:
    $oggi = time() - date("d/m/y", $data_inc0); //ERRORE
    if ($oggi > '518400') {//ERRORE
    codice:
    $oggi = time() - $data_inc0;
    if( $oggi <= 518400 ){//6 giorni
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

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.