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

Discussione: problema date

  1. #1

    problema date

    ciao ragazzi, ho un problema.

    vorrei sapere come fare a confrontare due date nel formato YYYY-MM-DD. Cioè, ho capito che (probabilmente) un confronto tra due formati del genere non è possibile. Allora ho provato a vedere di confrontarle nel formato YYYYMMDD, e il confronto viene fatto.
    Il problema però è che nel database la data ce l'ho nel formato precedente, cioè YYYY-MM-DD.
    Esiste una funzione in php che mi permette di togliere i trattini? Non suggeritemi la funzione DATE_FORMAT perchè non uso MySql come database...

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    $data = str_replace("-","",$data);
    Poi per il resto non ho capito molto di ciò che devi o vorresti fare.

  3. #3
    devo fare un confronto tra due date. solo che non riesco...
    Pensavo che il problema fossero i trattini e con la funzione che mi hai suggerito, li ho tolti ma il confronto non viene comunque fatto

    codice:
    $day = date ("Ymd");
    //inserisco in questa cella una data presa da un file
    $arr[0]['day'] = str_replace ('-','',fgets ($file));
    
    //il confronto è questo
    if ($arr[0]['day'] <= $day)
    nonostante $arr[0]['day'] abbia questa data "20060416" e $day abbia "20060416" quindi due valori uguali, l'if viene saltato...

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Me lo immaginavo. Io ti ho postato la funzione che volevi tu per eliminare i trattini ma così facendo scombini il formato del campo. Che database stai usando e che confronto devi fare, solo quale delle due è maggiore o cosa.

  5. #5
    Non scombina nulla perchè provo anche a stamparle a video e sono valori identici

    Comunque uso postgres (interagendoci con la classe PEAR) e il confronto è solo quello, se una data è minore o uguale all'altra

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    $data1 = mktime (0,0,0,$mese1',$giorno1,$anno1);
    $data2 = mktime (0,0,0,$mese2',$giorno2,$anno2);
    Trasforma le date così e poi fai la differenza.

  7. #7
    La tua soluzione non la capisco, io le date le ho già in formato AAAA-MM-GG (A=anno M=mese G=giorno) perchè devo scomporle in anno mese e giorno?

    Forse ho capito il problema.
    Quando stampo i dati, quello letto dal file viene stampato con uno spazio alla fine. avevo letto da qualche parte che windows alla fine di una riga, oltre al carattere "/n" inserisce anche il carattere "/r" e per questo probabilmente viene stampato lo spazio... però non so dove trovare la soluzione...

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    La funzione che ti ho postato io ti permette di trovare l'unix timestamp delle due date. A questo punto puoi fare la differenza e vedere quale è maggiore.

  9. #9
    Sì, mi sa che conviene la differenza perchè facendola viene 0 (quindi giusto) mentre il confronto non fa nulla. Non so perchè, comunque una soluzione c'è
    Grazie per l'aiuto

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Una volta che hai i due timestamp fai così e hai risolto

    if ($data1 > $data2)
    echo "data 1 maggionre";
    elseif ($data1 < $data2)
    echo "data 2 maggiore";
    else
    echo "date uguali";


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.