Newsgroup: it.comp.www.php
Titolo: esempio controllo se data compresa fra 2 date in php

avrei necessità di uno script del tipo:
 
se data maggiore uguale di data1 e minore uguale di data2 allora carica 
pagina1 altrimenti carica pagina2
 
per voi semplicissimo ma per me che non conosco bene la sintassi è un 
problema
 
qualcuno a un esempio?
 
grazie. 
 

 qualcuno a un esempio?
          ^^^
 
 


no, io a Verona
:D
 
@OP
ti dò una dritta che non è così ovvia
Per confrontare date la cosa più semplice è trasformarle in Unix 
Timestamp, ossia il numero di secondi passati dalle 00:00 del 1/1/1970
 
Tutti i sistemi e linguaggi hanno metodi semplici per trasformare una 
data in quell'intero, ovviamente anche PHP
 
Ciao
-- 
I fatti mi cosano

Qualcosa in questo script non quadra, qualcuno sa dirmi dove sbaglio in 
questo controllo di date? Grazie.
 
***** Code *******
 
<?php
$data =(date("d-m-y"));
$data1="24/12/12";
$data2="26/12/12";
 
if($data >=$data1 && $data <=$data2 ){
include('pagina1.php');
} else {
include('pagina2.php');
}
 
***** END Code ******* 
 

 }
 
Non hai il tag di chiusura.

 questo controllo di date? 
 
Che stai confrontando stringhe, non date.
 
Devi usare mktime per creare una rappresentazione numerica delle date 
oppure la classe DateTime (che poi non fa altro che trasformare le date 
nella stessa rappresentazione per i confronti)
 
$data  = time();
$data1 = mktime(0,0,0,12,24,2012);
$data2 = mktime(0,0,0,12,26,2012);
 
if ($data >= $data1 && $data <= $data2 ){
 
Bye.


Tu lo usi?
Io se non sono obbligato no, così se c'è testo spurio salta subito 
all'occhio fra le altre cose
 
Mi pare fosse anche una best-practice, ma non riesco a ritrovare dove 
l'avevo letto



È esattamente il problema riguardo il quale ho cercato di metterti una 
pulce nell'orecchio
 
L'operazione <= >= col testo non funzionano come con gli interi
il timestamp identifica un momento preciso nel tempo (la data che ti 
interessa) e la trasforma in un intero, ossia il numero di secondi 
passati da una certa data definita per standard (l'1/1/1970)
 
Essendo numeri interi è molto più semplice confrontarli e a quel punto 
gli operatori <= e >= tornano a comportarsi come credo tu ti aspetti


 Mi pare fosse anche una best-practice,
 
Certo che creare i delimitatori e poi invitare a non usare quello finale 
è una bella prova di coerenza.

 No, ma non uso molto PHP.
 
Errore: intendo dire che sì, uso il tag di chiusura.


Eh, purtroppo PHP ha avuto una genesi tutt'altro che pulita,  coerente, 
pensata, ragionata. È andato avanti un po' come capitava e in base a 
cosa serviva agli sviluppatori
 
Di fatto il tag di chiusura nasce storicamente per permettere di fare 
embed del codice dentro l'HTML
 
 
Con testo "spurio" intendo come caso tipico caratteri dopo il tag di 
chiusura in file inclusi da qualche parte che finiscono per emettere 
testo, portando al famoso problema dell'impossibilità di emettere gli 
header perché del contenuto è già stato trasferito (giusto un esempio)
 
Se non metti il tag di chiusura e lasci testo in giro come giustamente 
sottolinei hai un errore a runtime che ti indica il posto dove andare a 
correggere
 
Questioni sostanzialmente stilistiche, niente di che
 
Ciao
M
 
-- 
I cosi mi fattano

 cosa serviva agli sviluppatori
 
Lo so, ed è un aspetto che non mi piace. Oltre al fatto che l'approccio 
tipico è proprio con il codice embedded, secondo me ci vorrebbe uno 
stacco nella compatibilità e questo non dovrebbe essere proprio 
permesso, i file PHP usano il linguaggio PHP e basta.

 permesso, i file PHP usano il linguaggio PHP e basta.
 
Se hanno intenzione di togliere l'embed di PHP dai template, fammelo 
sapere che cerco un altro linguaggio di programmazione web. :P
 
Bye.


Beh, se obbligassero ad usare un sistema di templating io non è che mi 
metterei a piangere
Se poi fosse twig sarei pure contento
 
Uso un bel po' wordpress perché è diffusissimo e per i clienti piccoli 
va bene, ma che sia bello andare avanti di
<?=$qualcosa;?>
no
Quantomeno non per i miei gusti
M


 Se poi fosse twig sarei pure contento
 
Il punto è che con PHP hai un templating implicito.
 
Secondo me bene separare i contesti renderebbe migliore la comprensione 
del meccanismo di funzionamento di una applicazione web, cioè il file 
passato all'interprete PHP dovrebbe permettere solo codice al suo 
interno e i file di template invece dovrebbero essere interpretato se 
passato ad un motore, integrato nel linguaggio o disponibile libreria 
esterna che si voglia. E addio ai tag di apertura e chiusura nella 
logica.

 no
 
Perché no?
Cosa ha di diverso da <% qualcosa %> o da {qualcosa}?
 
Le prestazioni. Se usi PHP e` un missile. Se usi un sistema di templating 
appena cresce un po' il traffico devi mettere una cache, e arrivi a un 
punto in cui puoi mettere una cache a un template PHP ma per usare un 
motore esterno non ti basta più e devi passare a un secondo server.
 
E il dover imparare un linguaggio nuovo solo per i template.
 
Sto pensando non solo ai placeholder, ma anche a condizioni e cicli.
 
In più hai la possibilità (e la responsabilità, naturalmente) di usare 
qualcosa di più complesso nel caso ti serva.
 
Se poi i tramaccioni ne abusano, sono cavoli loro. Nessuno sano di mente 
metterà mano al loro codice, e quando si troveranno a modificarlo saranno 
comunque cavoli loro (o del poveraccio che viene assunto e pagato per 
sistemare i casini, ma vuol dire che verrà pagato più a lungo. :)
 
Bye.

 Bye.


 Sto pensando non solo ai placeholder, ma anche a condizioni e cicli.
 
Per questo suggerivo un motore che usasse la stessa sintassi del 
linguaggio che lo usa. 
Tir [1], che è scritto in Lua, usa una soluzione simile usando proprio 
Lua nel motore di templating.
 
 
[1] 
http://tir.mongrel2.org
 

 Non infierire ti prego
 
OK, spero di non aver già infierito troppo qui sopra. :D
 
Ma permettimi di aggiungere che se uno è incapace (sia nel senso "non è 
ancora capace" che nel senso "non sarà mai capace") inizierà dritto 
mettendo l'html dentro i print/echo.
 
Un motore di templating come twig o smarty sarà solo uno scoglio in più 
che non farà altro che rallentare il suo apprendimento.
 
Lo so perché è successo a me! :)
 
Ai tempi in cui tutti usavano smarty continuavo a scaricare ogni nuova 
versione e ripromettermi di leggere il manuale, ma poi non lo facevo mai, 
perché non avevo tempo di imparare quello che in effetti era un nuovo 
linguaggio. Avevo già abbastanza difficoltà a stare dietro alle novità di 
PHP, HTML, CSS, per non parlare di Javascript e SQL.
 
Ancora oggi PEAR e PECL quasi non li uso perché non ho voglia di 
sbattermi a capire come impostare gli include path o di andare a cercarmi 
i componenti e capire se mi vanno bene.
 
Uso un framework perché mi facilita enormemente il lavoro, ma se (come 
sta facendo ZF2) mi serve più tempo a imbastire il progetto che a farlo, 
passo ad altro.
 
Idem coi template, IMHO. :)
 
Bye.