Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170

    Conto delle ore all'interno di un mese

    Buongiorno,
    devo creare una pagina che mi elabori quante ore di attività si sono fatte all'interno di un mese.
    Mi spiego meglio con un esempio:
    ogni lunedì, mercoledì e venerdì, pincopallino fa 2 ore di nuoto, alla fine del mese devo vedere quante ore ha fatto in totale.

    Ho pensato di valorizzare i giorni 1 (lunedì), 3 (mercoledì),5 (venerdì) ed estrapolarli con la funzione date(w), ma poi come lo faccio il "paragone" con il mese (corrente, passato o futuro)?

    Grazie in anticipo a chi mi darà indicazioni.

  2. #2
    Dove e in che modo sono registrati questi dati? Se sono in un database fatto con criterio e' sufficiente una singola query.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    Si, pensavo di salvarli su db mysql facendo una tabella tipo.
    Giorno della settimana | Ore
    1 | 2

    Dove uno sta per lunedì, appunto estratto con la funzione date(w).
    Non volevo elaborare questo dato con una query (che tra l'altro non saprei come "paragonare" al mese), ma vorrei elaborarli in php in modo da tenere i risultati "singoli" e non "già conteggiati"

  4. #4
    Se fai una tabella cosi':

    id id_utente ore data
    1 14 2 2015-04-23

    poi puoi interrogare il db chiedendo direttamente la somma delle ore fatte per ogni utente in un certo mese con qualcosa come

    codice:
    SELECT `id_utente`, SUM(ore) AS ore_totali
    FROM tabella 
    WHERE YEAR(`data`) = '2015' AND MONTH(`data`) = '04'
    GROUP BY `id_utente`

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    Ma messa così dovrei inserire ogni mese i record, mentre a me serve che il lunedì fa 2 ore e quindi calcolare quante ore a prescindere da una specifica data, per esempio quante ore avrebbe fatto in maggio del 1950 o in magio del 2050, prendendo a riferimento le date del server eventualmente.

  6. #6
    Non ho capito bene, tizio fa 2 ore di piscina ogni lunedi per tutto l'anno? O devi inserire in quali lunedi le fa?

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    Tizio fa due ore di piscina il lunedì, mercoledì e venerdì, devo contare quante ore fa, in totale, durante un mese e un anno qualsiasi all'interno del calendario gregoriano.
    Per esempio ad aprile 2015 farà 26 ore di nuoto(4 lunedì, 5 mercoledì e 4 venerdì), a maggio 2015 ne farà 26, ma a febbraio 2015 ne ha fatte 24 perchè ci sono meno giorni di calendario.

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    quindi in pratica devi contare quanti lunedì, mercoledì e venerdì ci sono in un dato mese di un dato anno e per ognuno moltiplicare per due?

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    Quote Originariamente inviata da clasku Visualizza il messaggio
    quindi in pratica devi contare quanti lunedì, mercoledì e venerdì ci sono in un dato mese di un dato anno e per ognuno moltiplicare per due?

    Praticamente si

  10. #10
    Prova cosi':

    Codice PHP:
    function days_in_month($month$year) {
        
    $start date('Y-m-d'mktime(000$month1$year));
        
    $end   date('Y-m-t'strtotime($start));

        
    $current $start;
        
    $days = array();

        while (
    $current <= $end) {
            
    $weekday date('D'strtotime($current));
            if (!isset(
    $days[$weekday])) {
                
    $days[$weekday] = 0;
            }

            
    $days[$weekday]++;

            
    $current date('Y-m-d'strtotime("{$current} +1 day"));
        }

        return 
    $days;
    }

    $days days_in_month(42015);
    print_r($days); 
    output:
    codice:
    Array
    (
        [Wed] => 5
        [Thu] => 5
        [Fri] => 4
        [Sat] => 4
        [Sun] => 4
        [Mon] => 4
        [Tue] => 4
    )

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.