[PHP] Calcolo giorno

z.cristiano

Utente Attivo
16 Giu 2007
140
0
16
Buonasera...
una spiegazione che riguarda al calcolo di data..

Se io registro lunedì 7 novembre 2016 e automaticamente dovrei sapere quanti lunedì ci sono per un mese di novembre e una lista di giorni ogni lunedì..

Mi ricordo che è il codice MKTIME ma non mi ricordo cosa va aggiunto il codice in modo che se io registro esempio MERCOLEDI', deve automaticamente apparire quanti mercoledì sono disponibili per il tutto il mese di novembre e anche facendo il ciclo specificando il giorno di ogni mercoledì...faccio esempio per spiegare meglio

Digito MERCOLEDI' 9 NOVEMBRE, il sistema calcola e appaia:
- In questo mese di NOVEMBRE ci sono 3 MERCOLEDI' disponibili ovvero
giorno 9 novembre
giorno 16 novembre
giorno 23 novembre
giorno 30 novembre

E' possibile?
 

mansportivo

Nuovo Utente
21 Ott 2016
18
1
3
Buonasera...
una spiegazione che riguarda al calcolo di data..

Se io registro lunedì 7 novembre 2016 e automaticamente dovrei sapere quanti lunedì ci sono per un mese di novembre e una lista di giorni ogni lunedì..

Mi ricordo che è il codice MKTIME ma non mi ricordo cosa va aggiunto il codice in modo che se io registro esempio MERCOLEDI', deve automaticamente apparire quanti mercoledì sono disponibili per il tutto il mese di novembre e anche facendo il ciclo specificando il giorno di ogni mercoledì...faccio esempio per spiegare meglio

Digito MERCOLEDI' 9 NOVEMBRE, il sistema calcola e appaia:
- In questo mese di NOVEMBRE ci sono 3 MERCOLEDI' disponibili ovvero
giorno 9 novembre
giorno 16 novembre
giorno 23 novembre
giorno 30 novembre

E' possibile?
PHP:
$giorni = array('Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato');
$data = "2016-11-01";
echo $giorni[date('w',strtotime($data))];

con il codice sopra cicli i giorni del mese e estrai solo quelli che ti interessano

ciao
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
28
PHP:
<?php

function calcola_giorni($giorno,$mese,$anno) {
    $data = $anno."-".$mese."-".$giorno; // imposto la data nel formato Y-m-j
    $unix = strtotime($data); // timestamp unix
    $day = strtolower(date("D",$unix)); // trovo il giorno corrispondente alla data inserita

    $giorni = array(date("j-m-Y",$unix)); // creo l'array in cui finiranno tutti i lun/mar/.../dom del mese
    $m = $mese; //servirà per controllare la condizione in un ciclo while
    $i=1; // inizializzo una variabile che mi servirà per l'inserimento dei vari giorni in un array
    while ($m == $mese) { // finché il mese è quello di partenza
        $prossimo = $unix+86400*7; // calcola che giorno è tra una settimana
        $giorni[$i] = date("j-m-Y",$prossimo); // aggiungilo all'array sottoforma di data
        $i++; // incremento l'indice dell'array
        $m = date("m",$prossimo+86400*7); // incremento $m (serve per il controllo nel ciclo while)
        $unix = $prossimo;
    }
    // array $transcod per passare dai nomi in inglese a quelli in ita
    $transcod['mon'] = "Lunedì";
    $transcod['tue'] = "Martedì";
    $transcod['wed'] = "Mercoledì";
    $transcod['thu'] = "Giovedì";
    $transcod['fri'] = "Venerdì";
    $transcod['sat'] = "Sabato";
    $transcod['sun'] = "Domenica";
    // stampa dei giorni
    echo "In questo mese ci sono ".count($giorni)." ".$transcod[$day]." disponibili, ovvero: <br>";
    foreach ($giorni as $key => $value) {
        echo $transcod[$day]." ".$value."<br>";
    }
}

calcola_giorni(1,9,2016);

 ?>

Questo l'output:
In questo mese ci sono 5 Giovedì disponibili, ovvero:
Giovedì 1-09-2016
Giovedì 8-09-2016
Giovedì 15-09-2016
Giovedì 22-09-2016
Giovedì 29-09-2016
 

z.cristiano

Utente Attivo
16 Giu 2007
140
0
16
Grande....funziona...

Ma perdonami una cosa perchè sto davvero impazzendo...

Se volessi che elencassi i numeri di giorno ogni giovedi a partire da settembre 2016 a febbraio 2017?

Cioè, se seleziono MERCOLEDI' facendo questo calcolo che numeri sono ogni mercoledì da settembre 2016 a febbraio 2017?
 

marino51

Utente Attivo
28 Feb 2013
3.041
192
63
Lombardia
PHP:
<?php
$dtmin = '2016-09-01';
$dtmax = '2017-02-28';
$cerco = 'giovedi';

$nomi = array('Mon'=>'lunedi','Tue'=>'martedi','Wed'=>'mercoledi','Thu'=>'giovedi','Fri'=>'venerdi','Sat'=>'sabato','Sun'=>'domenica');
$diff = '+1 day';
$conta = 0;

for ( $dt=$dtmin; $dt<=$dtmax; )
{
    $date = new DateTime($dt);
    $giorno = $nomi[$date->format('D')];

    if ($giorno == $cerco)
        {
        echo $giorno.$date->format(' d/m/Y')."<br />";
        $diff = '+1 week';
        $conta++;
    }
    $date = $date->modify($diff);
    $dt   = $date->format('Y-m-d');
}
echo "ho trovato ".$conta." ".$cerco."<br /> <br />";

se ci fosse la localizzazione installata, non occorrerebbe la traduzione dei nomi,
ma non essendo "standard" meglio questa soluzione
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
M Problema con php per calcolo costo percentuale PHP 7
A [PHP] calcolo numero di ore effettuate PHP 7
M [PHP] Visualizzare nell'alert il calcolo PHP 4
maxnegri [PHP]Funzione di calcolo prezzo di una camera in un range di date PHP 62
P [PHP] Calcolo prezzi camera in range di date diverse PHP 11
S [PHP] Calcolo Rate PHP 2
T [PHP] Calcolo anzianità soggetti [era: Help me :( Esercizio per me impossibile] PHP 9
S calcolo php PHP 2
D calcolo fra date php PHP 2
M php / mysql calcolo prezzo base preventivo per hotel PHP 34
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3

Discussioni simili