Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Data e ora

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    43

    Data e ora

    Salve,

    ho un problema con le conversioni delle date. Potreste aiutarmi?

    Devo convertire da formato windows time a unix time e viceveresa.


    <?php

    //Windows Time to Unix Time
    $mil = 40527.3307936343 ; //Corrisponde al 2010-12-15 07:56:17 UTC'
    $timestamp = round(($mil - 25569) * 86400);
    echo "Numero di secondi inziali in formato windows: " . ($mil);
    echo("
    ");
    echo "Data in GMT format: " . gmdate("d-m-Y H:i:s", $timestamp);
    echo("
    ");

    //---- Fino a qui ok, ma sotto mi da un conversione diversa.

    $seconds = strtotime('2010-12-15 07:56:17 UTC');
    echo $seconds;
    echo("
    ");echo("
    ");
    $mil1= ($seconds / 86400) + 25529;
    echo "Numero di secondi in formato windows: " . ($mil1); ;
    echo("
    ");echo("
    ");
    ?>

    Se tutto fosse corretto le due variabili evidenziate in rosso, dovrebbero essere uguali, invece non lo sono.

    Questo è l'output:

    Numero di secondi inziali in formato windows: 40527.3307936
    Data in GMT format: 15-12-2010 07:56:21
    1292403377

    Numero di secondi in formato windows: 40487.372419

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    43
    Nessun suggerimento?

  3. #3
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    da una parte sottrai 25569 dall'altra aggiungi 25529 40 in meno, per i numeri decimali credo sia un problema di precisione non saprei

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    43
    Grazie, ho sistemato l'errore ma ancora non va.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    43
    Ho fatto alcuni test, ma la conversione comporta un errore di 4 secondi che per me, purtroppo non vanno bene.

    I dati sono campionati al centesimo di secondo. Un errore di questo tipo mi comporta la perdita di almeno 400 campioni.

  6. #6
    quando usi
    $seconds = strtotime('2010-12-15 07:56:17 UTC');

    devi rispecificare il timestamp di riferimento altrimenti si che ottieni due valori diversi...
    prova con

    $seconds = strtotime('2010-12-15 07:56:17 UTC',$timestamp);
    non specificando il timestamp di riferimento viene utilizzato il timestamp attuale.

    Fammi sapere
    V.I.S.T.A. --> Virus Inside, Switch To Apple

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