Visualizzazione dei risultati da 1 a 8 su 8

Discussione: date /ore

  1. #1

    date /ore

    Cia a tutti.
    SPero che qualcuno mi possa aiutare.
    Mi server fare la differenza tra due variabili data formattate in questo modo;

    var $inizio = "16-3-2007, 21-30-50"; //gg-m-yyyy,hh-mm-ss
    var $fine = "16-3-2007, 21-40-35"; //gg-m-yyyy,hh-mm-ss

    La differenza fra questi due valori la devo inserire sul db nel formatto:

    hh:mm:ss

    Qualcuno ha un idea.

    Io ho fatto in questo modo, ma la formattazione finale non mi da il valore giusto:

    $split_date_end = split('-', $fine);
    $time = mktime ($split_date_end[3], $split_date_end[4], $split_date_end[5], $split_date_end[0], $split_date_end[1], $split_date_end[2]);

    $split_date_start = split('-', $inizio);
    $time1 = mktime ($split_date_start[3], $split_date_start[4], $split_date_start[5], $split_date_start[0], $split_date_start[1], $split_date_start[2]);


    $differenza= ($time - $time1)/(60*60);

    echo "

    ";

    $today = date("H:i:s", $differenza);

    Grazie per l'aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Un errore si nota subito
    Questa istruzione
    $split_date_end = split('-', $fine);

    Da fuori questo array (basta fare una print_r)

    Array
    (
    [0] => 16
    [1] => 3
    [2] => 2007, 21
    [3] => 40
    [4] => 35
    )
    Che non credo fosse ciò che ti aspettavi (notare l'elemento 2 => 2007, 21)

    Dopo usi nella funzione mktime l'elemento $split_date_end[5] che non è settato, mentre usi gli il 3 e il 4 nella posizione sbagliata (poichè ti aspettavi che 3 contenesse le ore, 4 i munuti e 5 i secondi

  3. #3
    Grazie.
    In effetti l'errore c'era ma non risolve comunque il problema.

    Leggendo le specifiche sul sito PHP ho impostato quest'altro codice:

    $differenza=(strtotime($ora_attuale) - strtotime($tempo_inizio));

    $dif = date("H:i:s", $differenza);

    Purtroppo il valore che ottengo è corretto per quanto riguarda i minuti e i secondi, ma mi pone il valore delle ore ad uno:

    ecco le variabili con la quale testo:

    $tempo_inizio= "16:59:37";
    $ora_attuale= "17:07:34";

    Il valore di dif mi viene 01:07:57

    Aiutatemi, vi prego

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Effettivamente facendo qualche prova è strano
    Ho risolto così, ma non è ortodosso
    Codice PHP:
    $tempo_inizio"16:59:37";
    $ora_attuale"17:07:34";
    $differenza=(strtotime($ora_attuale) - strtotime($tempo_inizio));
    $ore floor($differenza 3600);
    $minuti floor(($differenza%3600)/60);
    $secondi $differenza%60;
    $dif date("H:i:s"$differenza);
    $dif2 "$ore:$minuti:$secondi";
    echo 
    "$dif
    $dif2"
    $dif2 funziona a differenza di $dif1... e sicuramente è una cosa stupida che non conosco

  5. #5
    Grazie.
    Meglio di niente.
    Comunque è veramente strano, spero che qualcuno mi possa dare una risposta.

    Senti, ma se il formatto dell'ora lo volessi con due cifre decimali (00) che cosa dovrei fare?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    $ore = sprintf("%02s",$ore);

  7. #7
    Grazie.
    Ma se dovessi sommare delle variabili di questo tipo.

    $var 1= "00:02:40"
    $var 2= "00:02:48"

  8. #8
    Ragazzi, qualcuno mi può aiutare?
    Ho questo problema e non riesco a cavarne piedi.

    Io divido questi numeri considerando il tutto una stringa, quindi sommo gli addendi e ricompatto la stringa ma niente.
    Forse dovrei considerarli dei valori diversi e fare delle operazioni con le funzioni tipiche delle date?.

    Grazie mille

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.