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

Discussione: calcoli sulle date

  1. #1
    Utente bannato
    Registrato dal
    Mar 2011
    Messaggi
    389

    calcoli sulle date

    ciao a tutti come faccio a far capire a php che


    12:50:50 è maggiore di
    12:49:55

    cioè io pr calcolarmi la differenza di tempo
    explodo i due time e faccio la differenza 12-12,50-49,50-55

    però php giustamente interpreta 50 minore di 55...

    come gli posso far capire che è il contrario?
    grazie ciao a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    161
    intanto queste a casa mia osno ore...
    poi parti dalle ore, se una è già minore dell'altra ti fermi, se sono uguali vai ai minuti e ripeti il controllo.
    nel tuo caso vede 50>49 e si ferma lì; i secondi non interessano

  3. #3
    Utente bannato
    Registrato dal
    Mar 2011
    Messaggi
    389
    guarda qui, sto cercando di salvare la data e ora corrente e calcolarmi la differenza di 5 minuti

    Codice PHP:


    <?php 
    $now
    getdate();
    $date $now["year"] . "-" $now["mon"] . "-" $now["mday"];
    $time $now["hours"]. ":" $now["minutes"] . ":" $now["seconds"];


    $dateStr"$date $time"
    echo 
    "$dateStr
    "
    ;
    $timestampstrtotime($dateStr);

    $intSecs + (5*60) + (0*60*60) + (0*24*60*60);

    $scadenza_data"2011-04-01";
    $scadenza_ora "18:56:10";

    $newDateStr date ("Y-m-d H:i:s"$timestamp $intSecs);

    echo 
    "$scadenza_data
    $scadenza_ora
    "
    ;
    list(
    $anno,$mese,$giorno)=explode('-',$date); 
    list(
    $ore,$minuti,$secondi)=explode(':',$time); 

    list(
    $annoo,$mesee,$giornoo)=explode('-',$scadenza_data);
    list(
    $oree,$minutii,$secondii)=explode(':',$scadenza_ora);

    $newanno=$annoo-$anno;
    $newmese=$mesee-$mese;
    $newgiorno=$giornoo-$giorno;

    $newore=$oree-$ore;



    $newminuti=$minutii-$minuti;
    $newsecondi=$secondii $secondi;



    echo 
    "$newanno $newmese $newgiorno $newore $newminuti $newsecondi";
    ?>
    dove lo metto il controllo e come? scusami ma non ti ho capito

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    161
    scusa, avevo capito che ti bastava controllare quale data/ora era maggiore, non che volevi la differenza...
    cmq...
    50-55 ti restutuisce -5... e tu vuoi 5: ti basta mettere un controllo e se il numero è negativo lo moltiplichi per -1

  5. #5
    Utente bannato
    Registrato dal
    Mar 2011
    Messaggi
    389
    ok ora il segno negativo si è tolto


    solo che ora
    18:56:10 -
    18:26:49 =
    0 30 39


    vabbè grazie lo stesso, semmai li converto tutti in secondi è faccio prima

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    161
    piccola defaiance... cmq il concetto è quello :-)

  7. #7
    non ho capito cosa devi fare. Se davi aggiungere 5 minuti o confrontare solo l'ora od anche la data.

    Poi proprio mi sfugge il significato di:

    $intSecs = 0 + (5*60) + (0*60*60) + (0*24*60*60);

    scrivi subito 300 .... (5*60)

    in pratica:

    $newDateStr = date ("Y-m-d H:i:s", time() + 300);

    basta e avanza quanto segue:

    Codice PHP:
    <?php 

    $scadenza_dataOra
    "2011-04-01 18:56:10";
    $newDateStr date ("Y-m-d H:i:s",  time() + 300);

    if(
    strtotime($scadenza_dataOra) >= strtotime($newDateStr)) {
       echo 
    "Vero"
    } else { echo 
    "Falso";}

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

  8. #8
    Utente bannato
    Registrato dal
    Mar 2011
    Messaggi
    389
    un ultima domanda

    Codice PHP:
    $newDateStr date ("Y-m-d H:i:s",  time()) 
    prende la data e l'ora dal computer?


    e se volessi prendere dei valori uguali per tutti, per evitare differenze di orario?

  9. #9
    Originariamente inviato da Phone
    un ultima domanda

    Codice PHP:
    $newDateStr date ("Y-m-d H:i:s",  time()) 
    prende la data e l'ora dal computer?


    e se volessi prendere dei valori uguali per tutti, per evitare differenze di orario?
    time() rende l'ora unix timestamp impostata sul computer. Eventuali differenze tra il client ed il server non sono prevedibili. Son due macchine differenti gestite da persone diverse.

    Altro discorso sara' invece il time zone e la gestione dell'ora legale.

    In mysql quando richiedi la dataora con NOW() o SYSTEM() per inserirle in una query INSERT multipla questa dataora viene letta nell'OS una sola volta ed applicata a tutte le tuple inserite con un solo comando mysql_query.

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

  10. #10
    Utente bannato
    Registrato dal
    Mar 2011
    Messaggi
    389
    scusami piero ma non ho capito niente

    io vorrei che la data e ora che stampo sia quella del server ad esempio.

    oppure di qualsiasi altra cosa, in modo che posso evitare che 2 client che sono collegati vedono la data uguale al loro pc e quindi avere dei problemi di calcolo

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.