Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Problemi con il timestamp

    Salve a tutti, vorrei esporre un mio problema sperando che qualcuno riesca a darmi qualche consiglio.
    Devo fare una calcolo tra date ossia sapere quanti giorni intercorrono tra una data e l'altra.
    Per prima cosa ho trasformato le date in timestamp, ho effettuato la sottrazione ed ho convertito il tutto in giorni affinchè mi venisse restituito il numero di giorni ottenuto dalla differenza.
    Ovviamente se sono quì è perchè qualcosa non funziona.
    Tra i tanti tentativi che ho fatto invano, ho trovato un convertitore on line per verificare che, il codice php da me scritto, convertisse correttamente le date e purtroppo non è stato così.
    Questo è il codice incriminato:

    codice:
    $dataodierna=mktime(0,0,0,date("m"),date("d"),date("Y"));
    echo $dataodierna;
    Il codice mi dovrebbe fare il timestamp della data odierna (solo giorno, mese ed anno) ma mi restituisce un valore diverso da quello fatto on line.

    Mi sapete dire dove sbaglio?
    Grazie.
    Ms.

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    ma mi restituisce un valore diverso da quello fatto on line.

    fatto online dove? spiega meglio

  3. #3
    Ho cercato un convertitore timestamp on line e ne sono usciti tanti.
    Io ho usato il seguente: http://www.onlineconversion.com/unix_time.htm

    Se metto la data odierna mi esce un timestamp diverso da quello che mi restituisce il codice postato in precedenza.
    A chi devo dare ragione, al mio codice oppure al convertitore on line?
    Ms.

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    la differenza è solo per il fuso orario, quel sito non è italiano

  5. #5
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    prova così

    Codice PHP:
    date_default_timezone_set("Atlantic/Azores");
    $dataodierna=mktime(0,0,0,date("m"),date("d"),date("Y"));
    echo 
    $dataodierna

  6. #6
    Ciao.
    In realtà ho risolto, avevo commesso un errore in un'altra istruzione che non ho postato su questo forum e perdippiù ho fatto riferimento ad un sito che non mi dava il timestamp esatto.
    Adesso è tutto ok.
    Grazie mille.
    Ms.

  7. #7
    Ciao bstefano79.
    Il problema l'ho parzialmente risolto; mi capita che se sottraggo due date uguali, ottengo una differenza che non è zero; mi spiego meglio.
    Io ho due stringhe, una con la data odierna ed l'altra con una data recuperata da un database, li converto tutti e due in timestamp, sottraggo dalla data odierna quella del database, infine converto il risultato in giorni con il seguente codice:

    codice:
    echo "
    pari a giorni= ".date('d', $diff);
    dove $diff è la differenza delle due date in timestamp.
    Il problema è che se le due date sono identiche, il risultato è 1 invece dovrebbe essere 0.
    Esempio: $dataodierna = 16-07-2013 e $datarecord = 16-07-2013; la differenza in giorni dovrebbe essere 0 e non 1.
    Ho provato a sottrarre 1 unità al risultato ma senza avere successo.
    Magari per i programmatori potrebbe essere una stupidagine, purtroppo io non sono esperta ne tantomelo lo voglio diventare; il mio sito l'ho completato, mi manca ancora questa piccola cosa e poi posso ritenermi soddisfatta.
    Grazie di un eventuale consiglio.
    Ms.

  8. #8
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    dovresti postare il codice, come converti le date?

  9. #9
    Ecco quà

    codice:
    	$dataodierna=mktime(0,0,0,date("m"),date("d"),date("Y")); //converte in timestamp la data odierna
    	$datarecorddb1=explode("-",$record[data]); //recupero la data dal database e lo esplodo in un array per poterlo convertire con la prossima istruzione
    	$datarecorddb=mktime(0,0,0,$datarecorddb1[1],$datarecorddb1[2],$datarecorddb1[0]); //contiene il timestamp della data recuperata dal database
    	$diff=$dataodierna-$datarecorddb; //fa la differenza
    	echo "
    pari a giorni= ".date('d', $diff); //la converte in giorni
    	die();
    La data inserita nel database è identica a quella odierna ossia 16-07-2013
    Grazie mille.
    Ms.

  10. #10
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    devi fare così

    echo "
    pari a giorni= ".($diff/86400);

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.