Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    differenza tra un qualsiasi giorno futuro ed oggi

    ciao a tutti
    ho bisogno di tirare fuori il numero di giorni che ci vogliono da oggi a un qualsiasi giorno futuro che pesco dal database, si riferisce all'arrivo di un cliente.

    1) nel database inserisco la data di arrivo in formato 2014-04-25 chiamata $arrivo
    2) recupero il giorno odierno cosi: $oggi=date("Y-m-d");

    poi mi creo questa funzione per convertire le date:
    Codice PHP:
    $dal="$oggi";
    $al="$arrivo";
    $date_from_parts explode('/'$dal);
    $date_to_parts explode('/'$al);
    $ts_from mktime(000$date_from_parts[1], $date_from_parts[0], $date_from_parts[2]);
    $ts_to mktime(000$date_to_parts[1], $date_to_parts[0], $date_to_parts[2]);
    for (
    $x $ts_from$x <= $ts_to$x += 86400){
    $days[] = date('d/m/Y'$x);
    }
    $giorni"".count($days);
    echo
    "$giorni"
    ma non mi da niente, mi estrae numeri progressivi da 1 a quanti sono i clienti che sto monitorando, ma non mi indica quanti giorni mancano all'arrivo del cliente.

    Dove sbaglio?

  2. #2
    Perche' non fai tutto e semplificando parecchio con il solo mysql? Sempre che il tuo database sia MySql ovviamente.

    usa datediff() http://dev.mysql.com/doc/refman/5.5/...ction_datediff

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

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si il mio database e' mysql, pero' non capisco come devo modificare la mia query visto che la data di arrivo "$data_arrivo" la converto in gg/mm/aaaa, questa è la query che sto usando ora:
    Codice PHP:
    $query_acconto "select id_prenotazione, agenzia, cognome, DATE_FORMAT(data_prenotazione, '%d/%m/%Y') AS data_prenotazione, DATE_FORMAT(data_arrivo, '%d/%m/%Y') AS data_arrivo, data_arrivo as arrivo, acconto_inviato from tabella where acconto_inviato = \"0\" and pagamenti !=\"4\" and data_arrivo >= NOW() and cancellata = '0' order by arrivo"
    dovrei aggiungere da qualche parte qualcosa tipo:
    Codice PHP:
    SELECT DATEDIFF('$oggi','$arrivo'); 
    ma $arrivo mi esce nel formato italiano

  4. #4
    Quote Originariamente inviata da allin81 Visualizza il messaggio

    ma $arrivo mi esce nel formato italiano

    Recuperare prima $arrivo non significa fare tutto e subito in SQL!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    non ho capito che intendi

  6. #6
    Invece di convertire, estrarre, confrontare e sbagliare e' sufficiente che fai fare il calcolo a mysql.

    per puro esempio si suppone che dovrai adattare la query ai tuoi bisogni:

    codice:
    $query_acconto = "select id_prenotazione, agenzia, cognome, 
    datediff(curdate(), data_arrivo) as ma_quanti_giorni,
    data_arrivo as arrivo, acconto_inviato 
    from tabella 
    where acconto_inviato = \"0\" and pagamenti !=\"4\" 
    and data_arrivo >= NOW() and cancellata = '0' 
    order by arrivo";

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

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    sto provando come dici tu, addirittura inserendo le date manualmente cosi
    Codice PHP:
    $query_acconto "select id_prenotazione, agenzia, cognome, 
    datediff(2014-04-20, 2014-04-16) as numero_giorni,
    data_arrivo as arrivo, acconto_inviato 
    from prenotazioni 
    where acconto_inviato = \"0\" and pagamenti !=\"4\" 
    and data_arrivo >= NOW() and cancellata = '0' 
    order by arrivo"

    poi nel while aggiungo
    Codice PHP:
    $quanti_giorni $riga_acconto['numero_giorni']; 
    e se provo a stampare echo"$quanti_giorni"; non mi esce niente.

    La data in formato italiano devo cmq mostrarla a video, non devo usarlo il date_format?

  8. #8
    datediff('2014-04-20', '2014-04-16') as numero_giorni

    mancano gli apici quelle date sono stringhe

    Credo sarebbe molto utile vedere come fai ad estrarre i valori dai record trovati. Se devi visualizzare la data in forma italica usa date format ma non per le funzioni, solo per la visualizzazione della data.

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

  9. #9
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    se uso la query di prima, con le date aggiungendo gli apici, funziona, mi tira fuori il valore 4

    Ora andandola a settare come serve a me non esce niente

    tu avevi scritto:
    Codice PHP:
    datediff(curdate(), data_arrivo
    io ho provato anche con il dollaro in data arrivo ($data_arrivo) ma niente.

    Curdate nemmeno me lo tira fuori se provo a vedere cosa mi estrae la query con echo"$query_acconto";

    Credo che va anche in conflitto con una query che faccio piu' sopra dove estraggo sempre data_arrivo.

    In ogni caso, devo estrarre il giorno di arrivo nel formato 2014-04-20 e il giorno odierno per vedere quanti giorni mancano all'arrivo del cliente.
    Poi devo mostrare il giorno di arrivo nel formato italiano in modo che in ufficio capiscono come leggere quella data.
    Date_format lo sto usando per mostrare la data in forma italiana ma poi ho problemi a fare il conteggio dei giorni che mancano

    In pratica riesco a fare solo 1 delle 2 cose e non entrambe contemporaneamente

  10. #10
    Quote Originariamente inviata da piero.mac Visualizza il messaggio
    Credo sarebbe molto utile vedere come fai ad estrarre i valori dai record trovati.
    posta lo script relativo alla query ed alla stampa del result set

    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 © 2024 vBulletin Solutions, Inc. All rights reserved.