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

    Data che cambia se convertita

    E' normale che se questa query
    codice:
    AND UNIX_TIMESTAMP(O.Data) BETWEEN 2008-05-07 AND 2008-09-16 GROUP BY A.Nome
    la trasformo in
    codice:
    AND UNIX_TIMESTAMP(O.Data) BETWEEN strtotime(2008-05-07) AND strtotime(2008-09-16) GROUP BY A.Nome
    ottengo
    codice:
    AND UNIX_TIMESTAMP(O.Data) BETWEEN 1210111200 AND 1221516000 GROUP BY A.Nome
    cifre che se vado a riconvertire in data tramite questo convertitore diventano tutte precedenti di un giorno (o più precisamente di 2 ore)?

    Cos'è che crea il problema?

    E' sbagliato il convertitore o sbaglio io?

  2. #2
    Mi sa tanto di un problema con i fusi orari e l'ora legale. Nel convertitore hai settato il timezone a GMT+2?

  3. #3
    potrebbe essere che per qualche motivo php te le ritorna in formato GMT
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    credo che sia un problema dovuto alla zona, dipende dal fuso orario.

    Guarda il manuale di date e più precisamente il parametro "Z"

  5. #5
    Ok allora è un problema del convertitore....

    Perchè rifacendo date(strtotime(data)) il valore è corretto..... è quello sul sito che va settato correttamente (solo che non capisco perchè GTM+2 anzichè GTM+1 come dovrebbe esser da noi

  6. #6
    probabilmente per via dell'ora di differenza per l'orario solare
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    togli pure il probabilmente:
    strtotime imposta il timestamp al timezone impostato. Sul tuo web server hai impostato quello di default cioè GMT, quindi quando chiami strtotime prima toglie una ora per il fuso, ed un ora per l'ora legale (in caso siamo in ora legale, dal mese prossimo sarà solo -1), poi ti ritorna i secondi dal 1-1-1970. Al contrario, date prende il timestamp aggiunge un ora per il GMT, un ora per l'ora legale (se c'è), e ti ritorna la stringa rappresentata da quel timestamp.

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.