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

Discussione: Problema ora legale

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    47

    Problema ora legale

    Buongiorno a tutti,

    ho un problema con l'ora legale...

    devo creare un array di date e ore con incremento orario, scritte come stringhe, in modo da avere qualcosa come questo:

    2012-03-27 22:00:00
    2012-03-27 23:00:00
    2012-03-28 00:00:00
    2012-03-28 01:00:00
    2012-03-28 02:00:00

    La cosa più semplice che mi è venuta in mente è un ciclo for/foreach:

    Codice PHP:
    for($indice=0$indice<100$indice++){ $data_ora=date("Y-m-d H:i:s"strtotime($data_inizio)+$indice*3600); } 
    Il problema è che quando si passa all'ora legale strtotime mi fornisce il timestamp aggiornato all'ora legale ma a me nn serve

    Il risultato è questo:

    2012-03-25 00:00:00
    2012-03-25 01:00:00
    2012-03-25 03:00:00
    2012-03-25 04:00:00

    C'è un modo affinché non si passi all'ora legale?

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, visto che le funzioni di data e orario utilizzano l'orologio interno del tuo server web potrebbe essere una soluzione disattivare l'automatico cambiamento di orario direttamente dal server, se ne hai accesso. In caso contrario dovresti farti i calcoli a manetta, cosa alquanto scomoda credo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    47
    Grazie,

    ci avevo già pensato. Il problema è che uso il cambio dell'ora in altre parti del codice

    Mi sa che dovrò fare a manina o inventarmi qualcosa usando date("I", )...

    Grazie!

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    L'ora legale e solare si cambiano sempre la stessa notte se non sbaglio.... fai un controllo e se il ciclo sta analizzando quelle date fai in controllo e togli/aggiungi 1 ora alla timestamp e sei apposto .

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    47
    Mmm...dalle prove che ho fatto non funziona.

    Non esiste un timestamp che coincida con l'orario "2012-03-25 02:00:00", o meglio...se lo converto in timestamp e lo riconverto in stringa passa dalle 2 alle 3 in automatico, pur essendo lo stesso timestamp

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    -.-

    Codice PHP:
    if( $data e' in rage cambio ora )
    {
        controlla ora minuti 
         se ora/minuti sono in rage di cambio ora 
           aggiungi/sottrai

    dove sta la difficoltà ?????

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    47
    Mmm,

    se ho capito bene tu dici di controllare le stringhe e aggiungere a mano quella che manca ("2012-03-25 02:00:00"), giusto?

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Puoi manipolare le stringhe o la timestamp fai come preferischi l'importante e' entrare corettamente nell'albero condizionale.

    QUesto ti consente :

    1- mantenere la funzione
    2- non creare side effects dannosi nel codice che usa la funzione

    quindi nella funzione di controllo inserisci i range di date dove avviene il cambio di ora(controllo 1 :date).

    quindi in tali casi controlla ore e minuti e se devi effettuare una modifica modifica.... attenzione pero' che tutte le date dopo datax e ora x dovranno essere modificate quindi applica correttamente i range. E devi anche impostare che o l'ora legale o(esclusivamente) quella solare sia il default e quindi sommare (o sottrarre ) quell'ora maledetta...

    P.S.
    Sinceramente non capisco davvero perche' tu debba impazzire a mantenere le date senza ora legale/solare... ma se devi farlo ti basta fare un controllo del genere.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    47
    Grazie Virus,

    devo farlo perché ho un db che non risente del cambio ora e devo manipolare quei dati

    Grazie!

    Ps. non posso modificare il timestamp, date() mi renderà comunque le 03:00:00, mai le 02:00:00

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    UTC? Tipo, per MySQL se non ricordo male, UTC_TIMESTAMP.
    Se poi ti dovesse servire la data/ora locale, applicherai le dovute funzioni. UTC per definizione non risente di ora legale/solare nè di fuso. (Sono le 11.44 UTC, per tutto l'universo)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.