[PHP] Calcolo giorno

z.cristiano

Utente Attivo
16 Giu 2007
145
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
30
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
145
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.203
207
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
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1

Discussioni simili