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

    funzioni,parametri & mktime()

    Salve a tutti, il problema è il seguente:

    - ho scritto una funzione che a seconda di un parametro in ingresso imposta un ora iniziale(ora_A) e un ora finale (ora_B) sfruttando il comando mktime():

    ES:

    $ora_A[h] = 18;
    $ora_A[m] = 30;
    $ora = mktime($ora_A[h],$ora_A[m]);
    $ora_B = mktime(22,0);

    - a seconda dei valori impostati in questa funzione, un altra funzione mi stampa una tabella con intervalli di 10 minuti a partire dall'ora_A all'ora_B

    ES:

    $minuti=0;

    while ($ora_B > $ora){

    $ora = mktime($ora_A[h], $ora_A[m]+$minuti);
    $ora_legg=date("H:i", $ora);

    ---stampa tabella---

    il problema è che richiamando la mktime nel while, la tabella inizia alle 00:00 invece che dall' ora impostata. Son sicuro che il problema dipende dalla nuova chiamata all' mktime perchè se prima del while stampo $ora, è corretta.
    provando a passare 4 parametri a questa funzione, quindi oltre a $ora e $ora_B anche i 2 parametri iniziali non ottengo dei miglioramenti...
    Di sicuro mi sto perdendo in un bicchier d'acqua, ma non ne vengo a capo...

    avete qualche idea in merito?

  2. #2
    Devo dedurre che nessuno mi può aiutare a risolvere questo problema?

  3. #3
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    il problema è che richiamando la mktime nel while, la tabella inizia alle 00:00 invece che dall' ora impostata.
    oggi non e' uguale a domani o a ieri.
    ¿Hasta la pasta?

  4. #4
    Scusa, ma che entra?
    E' questione di orari, e non passo mai la mezzanotte ne inizio a mezzanotte...quindi mi dovrebbe stampare la tabella in un modo tipo

    18:00
    18:10
    18:20
    .
    .
    .
    .
    .
    22:00

    ed effettivamente arriva a 22:00 incrementando i minuti di 10, solo che indipendentemente dall' ora iniziale che imposto parte da mezzanotte...

    e, come dicevo, se prima della mktime() del while stampo l'ora iniziale me la stampa corretta, quindi "è colpa" della nuova chiamata mktime()....io volevo sapere come aggirare il problema

  5. #5
    Inserendo questo mi funziona:

    Codice PHP:
    $ora_A[h] = 18;
    $ora_A[m] = 30;
    $ora mktime($ora_A[h],$ora_A[m]);
    $ora_B mktime(22,0);

    $minuti=10;

    while (
    $ora_B $ora){
        
    $ora_min $ora_A[m]+$minuti;
        
    $ora mktime($ora_A[h], $ora_min);
        
    $ora_legg=date("H:i"$ora);
        
    $minuti += 10;

    Realizzazione Software, Siti Web ed E-commerce. Consulenza Software ed esperti open source ...
    Scopri i nostri servizi...

  6. #6
    Non funziona...Nel senso che tu probabilmente lo usi nella stessa funzione, mentre per me sono 2 funzioni diverse:

    - La prima TIME SETTING() setta le ore in base a un parametro N con una struttura switch/case e poi chiama la funzione TABULA($ora_B,$ora)

    - La seconda, TABULA($ora_B,$ora) ,in base alle ore settate nella prima stampa la tabella

    Ho usato 2 funzioni diverse per non scrivere lo stesso codice N volte a seconda dei vari case dello switch della prima funzione...

    Altre idee?

  7. #7
    Allora posta le due funzioni...?
    Realizzazione Software, Siti Web ed E-commerce. Consulenza Software ed esperti open source ...
    Scopri i nostri servizi...

  8. #8
    Eccole:

    function TIME_SETTING($N){

    switch ($N) {

    case 1 :{
    $ora_A[h] = 8;
    $ora_A[m] = 0;
    $ora = mktime($ora_A[h],$ora_A[m]);
    $ora_B = mktime(12,0);
    break;}

    case 2 :
    case 3 :{
    $ora_A[h] = 10;
    $ora_A[m] = 0;
    $ora = mktime($ora_A[h],$ora_A[m]);
    $ora_B = mktime(13,0);
    break;}

    case 4 : {
    $ora_A[h] = 8;
    $ora_A[m] = 30;
    $ora = mktime($ora_A[h],$ora_A[m]);
    $ora_B = mktime(12,0);
    break;}

    case 5 :{
    $ora_A[h] = 18;
    $ora_A[m] = 30;
    $ora = mktime($ora_A[h],$ora_A[m]);
    $ora_B = mktime(22,0);
    break;}

    case 6 :
    case 7 :
    $ora_A[h] = 19;
    $ora_A[m] = 30;
    $ora = mktime($ora_A[h],$ora_A[m]);
    $ora_B = mktime(21,0);
    break;
    }

    tabula($ora, $ora_B);

    }


    ________________________________


    function tabula($ora, $ora_B){

    $minuti = 0;

    print("<table width = \"100%\" border = \"1\">\n");

    while ($oraf > $ora){

    $ora = mktime($ora_A[h], $ora_A[m]+$minuti);
    $ora_legg=date("H:i", $ora);

    print("<tr>\n");
    print("<td>$ora_legg</td>\n");
    print("<td>primo campo</td>\n");
    print("<td>secondo campo</td>\n");
    print("<td>terzo campo</td>\n");
    print("<td>quarto campo</td>\n");
    print("<td>quinto campo</td>\n");
    print("</tr>\n");
    $minuti += 10;

    }

    print("</table>\n");

    }

    queste sono le 2 funzioni

  9. #9
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    Scusa, ma che entra?
    infatti, rileggendo il tuo script non avevo capito bene.
    sorry....
    ¿Hasta la pasta?

  10. #10
    Nessun problema per il fraintendimento...
    Qualche idea per le funzioni?

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.