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

    Problemino con data recuperata da db

    Ciao a tutti, ho un piccolo problemino.....

    Allora, ho una serie di schede prodotto, quando salvo la scheda prodotto nel db, insieme salvo anche la data di inserimento con la funzione date.

    Devo fare in modo di poter inserire a fianco alle nuove schede prodotto, la dicitura:
    NOVITA'
    che deve restare li per 60 giorni)

    Ho fatto cosi':

    Codice PHP:

    // DATA ATTUALE
    $data_attuale date"dmy"mktime(date("y"),date("m"),date("d")) );        

    // DATA INSERIMENTO
    $data_v date("dmy"$array['data']);
                                                    
    // SCORPORO LA DATA IN 3 SEGMENTI
    preg_match("/(\d{2})(\d{2})(\d{2})/",$data_v,$match);
    $gg $match[1];
    $mm $match[2];
    $aa $match[3];

    $data_scadenza date ("dmy"mktime(0,0,0,date("$mm"),date("$gg")+60,date("$aa")));

    if(
    $data_scadenza $data_attuale) {

         echo 
    "NOVITA'";


    Solo che mi compare sempre in tutte le schede (anche quelle inserite prima di oggi per prova...) la dicitura NOVITA', non riesco proprio a capire il perche'....
    Suggerimenti ?

    In ogni caso, grazie dell'attenzione
    Ciao ciao

  2. #2
    non puoi confrontare con successo "dmy" ..... il valore piu' significativo va a sx come con qualsiasi numero. cent-dec-unita' cioe' devi confrontare "ymd" oppure direttamente il valore unix-timestamp.

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

  3. #3
    Ciao Piero, grazie per l'interessamento.

    Solo che, a dire il vero, non ho ben capito cosa intendi.

    :master:

  4. #4
    semplice: dmy e' un numero dove l'anno si trova a dx ed il giorno a sx.

    traduci in valore reale un esempio della tua data: 12-01-09, composto come dmy diventerebbe 120109. Ora fai un confronto sempre per esempio con la data 10-02-09 che diventerebbe 100209.

    bene. ora confronta:

    120109 e' maggiore o minore di 100209 ????

    Se invece la data la tratti come si trattano i numeri, cioe' piu' significativo a SX e meno significativo a DX avresti:

    data 12-01-09 diventerebbe ymd e cioe': 090112 e la data 10-02-09 sarebbe 090210

    ora confronta: 090112 con 090210 e vedrai che la data piu' recente sara' la maggiore.

    questo basicamente, cioe' senza entrare nel merito del tuo script che potrebbe essere opinabile, ma di cui volutamente mi disinteresso poiche' e' viziato da questo errore di forma (il confronto dmy ).

    Eventualmente confronta i timestamp ottenuti da mktime.

    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.