Ciao a tutti, vorrei inserire nel mio sito uno script che faccia comparire la data ma che si aggiorni automaticamente; credo che per questo bisognerà integrare il javascript, ma io non ho idea di come farlo, voi sapete dirmi qualcosa?
Ciao a tutti, vorrei inserire nel mio sito uno script che faccia comparire la data ma che si aggiorni automaticamente; credo che per questo bisognerà integrare il javascript, ma io non ho idea di come farlo, voi sapete dirmi qualcosa?
eccoti lo script
giorno,mese,anno, orario completo sono TUTTI dati dal server, quindi nessun valore locale.
in italiano ovviamente
![]()
data.php
Codice PHP:
<?php
$quel_giorno=getdate(time()-(86400*5)); // 5 è il numero di giorni di cui vuoi retrocedere. se vuoi andare avanti invece metti + . 86400 sono i secondi in 24 ore
echo "<pre>";print_r($quel_giorno);echo "</pre>";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, [url]www.pspad.com[/url]">
<title>data</title>
<script>
function DateFrom(Giorno,Mese,Anno,Ore,Minuti,Secondi)
{
var VecchiaData=new Date();
VecchiaData.setDate(Giorno);
VecchiaData.setMonth(Mese);
VecchiaData.setFullYear(Anno);
if (Ore != null ) VecchiaData.setHours(Ore);
if (Minuti != null ) VecchiaData.setMinutes(Minuti);
if (Secondi != null ) VecchiaData.setSeconds(Secondi);
var GiornoSett=VecchiaData.getDay();
var month=VecchiaData.getMonth()
var Ora=VecchiaData.getHours();
var Min=VecchiaData.getMinutes();
var Sec=VecchiaData.getSeconds();
var Mese=month;
if(Ora<=9) Ora="0"+Ora;
if(Min<=9) Min="0"+Min;
if(Sec<=9) Sec="0"+Sec;
switch (GiornoSett) //converte il numero in nome del giorno
{
case 0: //domenica
GiornoSett = "Domenica";
break;
case 1:
GiornoSett = "Lunedi`";
break;
case 2:
GiornoSett = "Martedi'";
break;
case 3:
GiornoSett = "Mercoledi`";
break;
case 4:
GiornoSett = "Giovedi`";
break;
case 5:
GiornoSett = "Venerdi`";
break;
case 6: //sabato
GiornoSett = "Sabato";
break;
}
switch (Mese) { //converte in numero in nome del mese
case 0:
Mese = "Gennaio";
break;
case 1:
Mese = "Febbraio";
break;
case 2:
Mese = "Marzo";
break;
case 3:
Mese = "Aprile";
break;
case 4:
Mese = "Maggio";
break;
case 5:
Mese = "Giugno";
break;
case 6:
Mese = "Luglio";
break;
case 7:
Mese = "Agosto";
break;
case 8:
Mese = "Settembre";
break;
case 9:
Mese = "Ottobre";
break;
case 10:
Mese = "Novembre";
break;
case 11:
Mese = "Dicembre";
break;
}
document.getElementById('orologo_giorno_sett').innerHTML =GiornoSett;
document.getElementById('orologo_giorno').innerHTML =VecchiaData.getDate();
document.getElementById('orologo_mese').innerHTML =Mese;
document.getElementById('orologo_anno').innerHTML =VecchiaData.getFullYear();
document.getElementById('orologo_ora').innerHTML =Ora;
document.getElementById('orologo_min').innerHTML =Min;
document.getElementById('orologo_sec').innerHTML =Sec;
setTimeout("DateFrom("+Giorno+","+month+","+Anno+",null,null,null)",1000);
}
</script>
</head>
<body onload="DateFrom(<?php echo $quel_giorno['mday'] ?>,<?php echo $quel_giorno['mon']-1 ?>,<?php echo $quel_giorno['year'] ?>)">
<table width="300" border="1">
<tr>
<td width="50" id="orologo_giorno_sett"></td>
<td width="50" id="orologo_giorno"></td>
<td width="50" id="orologo_mese"></td>
<td width="50" id="orologo_anno"></td>
<td width="50" id="orologo_ora"></td>
<td width="50" id="orologo_min"></td>
<td width="50" id="orologo_sec"></td>
</tr>
</table>
</body>
</html>
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
urca quanto codice...Originariamente inviato da dottwatson
eccoti lo script
giorno,mese,anno, orario completo sono TUTTI dati dal server, quindi nessun valore locale.
in italiano ovviamente
![]()
data.php
Codice PHP:
<?php
$quel_giorno=getdate(time()-(86400*5)); // 5 è il numero di giorni di cui vuoi retrocedere. se vuoi andare avanti invece metti + . 86400 sono i secondi in 24 ore
echo "<pre>";print_r($quel_giorno);echo "</pre>";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, [url]www.pspad.com[/url]">
<title>data</title>
<script>
function DateFrom(Giorno,Mese,Anno,Ore,Minuti,Secondi)
{
var VecchiaData=new Date();
VecchiaData.setDate(Giorno);
VecchiaData.setMonth(Mese);
VecchiaData.setFullYear(Anno);
if (Ore != null ) VecchiaData.setHours(Ore);
if (Minuti != null ) VecchiaData.setMinutes(Minuti);
if (Secondi != null ) VecchiaData.setSeconds(Secondi);
var GiornoSett=VecchiaData.getDay();
var month=VecchiaData.getMonth()
var Ora=VecchiaData.getHours();
var Min=VecchiaData.getMinutes();
var Sec=VecchiaData.getSeconds();
var Mese=month;
if(Ora<=9) Ora="0"+Ora;
if(Min<=9) Min="0"+Min;
if(Sec<=9) Sec="0"+Sec;
switch (GiornoSett) //converte il numero in nome del giorno
{
case 0: //domenica
GiornoSett = "Domenica";
break;
case 1:
GiornoSett = "Lunedi`";
break;
case 2:
GiornoSett = "Martedi'";
break;
case 3:
GiornoSett = "Mercoledi`";
break;
case 4:
GiornoSett = "Giovedi`";
break;
case 5:
GiornoSett = "Venerdi`";
break;
case 6: //sabato
GiornoSett = "Sabato";
break;
}
switch (Mese) { //converte in numero in nome del mese
case 0:
Mese = "Gennaio";
break;
case 1:
Mese = "Febbraio";
break;
case 2:
Mese = "Marzo";
break;
case 3:
Mese = "Aprile";
break;
case 4:
Mese = "Maggio";
break;
case 5:
Mese = "Giugno";
break;
case 6:
Mese = "Luglio";
break;
case 7:
Mese = "Agosto";
break;
case 8:
Mese = "Settembre";
break;
case 9:
Mese = "Ottobre";
break;
case 10:
Mese = "Novembre";
break;
case 11:
Mese = "Dicembre";
break;
}
document.getElementById('orologo_giorno_sett').innerHTML =GiornoSett;
document.getElementById('orologo_giorno').innerHTML =VecchiaData.getDate();
document.getElementById('orologo_mese').innerHTML =Mese;
document.getElementById('orologo_anno').innerHTML =VecchiaData.getFullYear();
document.getElementById('orologo_ora').innerHTML =Ora;
document.getElementById('orologo_min').innerHTML =Min;
document.getElementById('orologo_sec').innerHTML =Sec;
setTimeout("DateFrom("+Giorno+","+month+","+Anno+",null,null,null)",1000);
}
</script>
</head>
<body onload="DateFrom(<?php echo $quel_giorno['mday'] ?>,<?php echo $quel_giorno['mon']-1 ?>,<?php echo $quel_giorno['year'] ?>)">
<table width="300" border="1">
<tr>
<td width="50" id="orologo_giorno_sett"></td>
<td width="50" id="orologo_giorno"></td>
<td width="50" id="orologo_mese"></td>
<td width="50" id="orologo_anno"></td>
<td width="50" id="orologo_ora"></td>
<td width="50" id="orologo_min"></td>
<td width="50" id="orologo_sec"></td>
</tr>
</table>
</body>
</html>
mica lo paghi al kilo...![]()
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
va bè che discorsi, se per una data scrivi questo, chissa per una cosa più complessa.Originariamente inviato da dottwatson
mica lo paghi al kilo...![]()
E poi tieni conto che comunque che un file più piccolo si compila in meno tempo sul server.
però anzichè fare uno switch potevi mettere tutto in un array se proprio non vuoi usare strftime.
permetti che questo:
è diverso da questo:codice:switch (Mese) { //converte in numero in nome del mese case 0: Mese = "Gennaio"; break; case 1: Mese = "Febbraio"; break; case 2: Mese = "Marzo"; break; case 3: Mese = "Aprile"; break; case 4: Mese = "Maggio"; break; case 5: Mese = "Giugno"; break; case 6: Mese = "Luglio"; break; case 7: Mese = "Agosto"; break; case 8: Mese = "Settembre"; break; case 9: Mese = "Ottobre"; break; case 10: Mese = "Novembre"; break; case 11: Mese = "Dicembre"; break; }
codice:$mesi = array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'); echo $mesi[$mese];
Scusami gianiaz ma non ho capito il tuo intervento.
Ok, lo script funziona benissimo anche se io avevo in mente solo l'ora senza la data, però bisogna togliere 2 cose:
- '-(86400*5)' che c'è nella 2a linea perchè, non serve una data retrocessa di 5 giorni (questo l'avevo chiesto in un'altra discussione http://forum.html.it/forum/showthrea...readid=1183346)
- 'echo "<pre>";print_r($quel_giorno);echo "</pre>";' perchè così non restituisce l'array con tutti i dati che servono.
quindi alla fine è questo:
Per chi invece vuole solo l'ora che si aggiorni questo:Codice PHP:
<?php
$quel_giorno=getdate(time());
?>
<html>
<head>
<title>data</title>
<script>
function DateFrom(Giorno,Mese,Anno,Ore,Minuti,Secondi)
{
var VecchiaData=new Date();
VecchiaData.setDate(Giorno);
VecchiaData.setMonth(Mese);
VecchiaData.setFullYear(Anno);
if (Ore != null ) VecchiaData.setHours(Ore);
if (Minuti != null ) VecchiaData.setMinutes(Minuti);
if (Secondi != null ) VecchiaData.setSeconds(Secondi);
var GiornoSett=VecchiaData.getDay();
var month=VecchiaData.getMonth()
var Ora=VecchiaData.getHours();
var Min=VecchiaData.getMinutes();
var Sec=VecchiaData.getSeconds();
var Mese=month;
if(Ora<=9) Ora="0"+Ora;
if(Min<=9) Min="0"+Min;
if(Sec<=9) Sec="0"+Sec;
switch (GiornoSett) //converte il numero in nome del giorno
{
case 0: //domenica
GiornoSett = "Domenica";
break;
case 1:
GiornoSett = "Lunedi`";
break;
case 2:
GiornoSett = "Martedi'";
break;
case 3:
GiornoSett = "Mercoledi`";
break;
case 4:
GiornoSett = "Giovedi`";
break;
case 5:
GiornoSett = "Venerdi`";
break;
case 6: //sabato
GiornoSett = "Sabato";
break;
}
switch (Mese) { //converte in numero in nome del mese
case 0:
Mese = "Gennaio";
break;
case 1:
Mese = "Febbraio";
break;
case 2:
Mese = "Marzo";
break;
case 3:
Mese = "Aprile";
break;
case 4:
Mese = "Maggio";
break;
case 5:
Mese = "Giugno";
break;
case 6:
Mese = "Luglio";
break;
case 7:
Mese = "Agosto";
break;
case 8:
Mese = "Settembre";
break;
case 9:
Mese = "Ottobre";
break;
case 10:
Mese = "Novembre";
break;
case 11:
Mese = "Dicembre";
break;
}
document.getElementById('orologo_giorno_sett').innerHTML =GiornoSett;
document.getElementById('orologo_giorno').innerHTML =VecchiaData.getDate();
document.getElementById('orologo_mese').innerHTML =Mese;
document.getElementById('orologo_anno').innerHTML =VecchiaData.getFullYear();
document.getElementById('orologo_ora').innerHTML =Ora;
document.getElementById('orologo_min').innerHTML =Min;
document.getElementById('orologo_sec').innerHTML =Sec;
setTimeout("DateFrom("+Giorno+","+month+","+Anno+",null,null,null)",1000);
}
</script>
</head>
<body onload="DateFrom(<?php echo $quel_giorno['mday'] ?>,<?php echo $quel_giorno['mon']-1 ?>,<?php echo $quel_giorno['year'] ?> )">
<table width="300" border="1">
<tr>
<td width="50" id="orologo_giorno_sett"></td>
<td width="50" id="orologo_giorno"></td>
<td width="50" id="orologo_mese"></td>
<td width="50" id="orologo_anno"></td>
<td width="50" id="orologo_ora"></td>
<td width="50" id="orologo_min"></td>
<td width="50" id="orologo_sec"></td>
</tr>
</table>
</body>
</html>
Per chi vuole solo la data, come mi ha suggerito gianiaz:Codice PHP:
<?php
$quel_giorno=getdate(time());
?>
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<title>data</title>
<script>
function DateFrom(Giorno,Mese,Anno,Ore,Minuti,Secondi)
{
var VecchiaData=new Date();
VecchiaData.setDate(Giorno);
if (Ore != null ) VecchiaData.setHours(Ore);
if (Minuti != null ) VecchiaData.setMinutes(Minuti);
if (Secondi != null ) VecchiaData.setSeconds(Secondi);
var Ora=VecchiaData.getHours();
var Min=VecchiaData.getMinutes();
var Sec=VecchiaData.getSeconds();
if(Ora<=9) Ora="0"+Ora;
if(Min<=9) Min="0"+Min;
if(Sec<=9) Sec="0"+Sec;
document.getElementById('orologo_ora').innerHTML =Ora;
document.getElementById('orologo_min').innerHTML =Min;
document.getElementById('orologo_sec').innerHTML =Sec;
setTimeout("DateFrom(null,null,null)",1000);
}
</script>
<style type="text/css">
.style1 {
border-width: 0;
}
.style2 {
text-align: center;
}
</style>
</head>
<body onload="DateFrom(<?php echo $quel_giorno['mday'] ?>,<?php echo $quel_giorno['mon']-1 ?>,<?php echo $quel_giorno['year'] ?> )">
<table class="style1">
<tr>
<td id="orologo_ora" style="width: 15px"></td>
<td id="punto" style="width: 5px" class="style2">.</td>
<td id="orologo_min" style="width: 15px"></td>
<td id="punto" style="width: 5px" class="style2">.</td>
<td id="orologo_sec" style="width: 15px"></td>
</tr>
</table>
</body>
</html>
Ringrazio tantissimo dottwatson per lo script che ha dato per risolvere il mio problema.Codice PHP:
<?php
setlocale(LC_TIME,'it_IT');
$oggi = time();
$quattrogiornifa = $oggi - (4*86400);
echo ucfirst(strftime('%A, %e %B %Y', $quattrogiornifa));
?>
strftime può essere usato anche per l'ora...
ciao
l' intervento di gianiaz è piu che opportuno in quanto lo script con un array è piu rapido nell' esecuzione, e anche sotto un profilo di programmazione è piu corretto. Ma il mio voleva essere solo un esempio e soprattutto era abbastanza chiaro da reinterpretare per capirne il funzionameto...Originariamente inviato da gianiaz
va bè che discorsi, se per una data scrivi questo, chissa per una cosa più complessa.
E poi tieni conto che comunque che un file più piccolo si compila in meno tempo sul server.
però anzichè fare uno switch potevi mettere tutto in un array se proprio non vuoi usare strftime.
permetti che questo:
è diverso da questo:codice:switch (Mese) { //converte in numero in nome del mese case 0: Mese = "Gennaio"; break; case 1: Mese = "Febbraio"; break; case 2: Mese = "Marzo"; break; case 3: Mese = "Aprile"; break; case 4: Mese = "Maggio"; break; case 5: Mese = "Giugno"; break; case 6: Mese = "Luglio"; break; case 7: Mese = "Agosto"; break; case 8: Mese = "Settembre"; break; case 9: Mese = "Ottobre"; break; case 10: Mese = "Novembre"; break; case 11: Mese = "Dicembre"; break; }
codice:$mesi = array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'); echo $mesi[$mese];
tu in un post hai chiesto la data retrocessa e in un' altro l' ora con JS.
con una cosa del genere avevi tutte e 2 e potevi utilizzarlo come meglio ti sembrava opportuno, senza fare modifiche sostanziali.. diciamo un cosa pressocchè standard
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
Ok, vanno benissimo gli script che mi avete dato, riguardo all'array di gianiaz si capisce a vista d'occhio che è più corto, solo che io non ho ben capito come sostituirlo al tuo switch senza che non funzioni più lo scriptOriginariamente inviato da dottwatson
tu in un post hai chiesto la data retrocessa e in un' altro l' ora con JS.
con una cosa del genere avevi tutte e 2 e potevi utilizzarlo come meglio ti sembrava opportuno, senza fare modifiche sostanziali.. diciamo un cosa pressocchè standard
Codice PHP:
<?php
$quel_giorno=getdate(time()-(86400*0)); // 5 è il numero di giorni di cui vuoi retrocedere. se vuoi andare avanti invece metti + . 86400 sono i secondi in 24 ore
echo "<pre>";print_r($quel_giorno);echo "</pre>";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>data</title>
<script>
function DateFrom(Giorno,Mese,Anno,Ore,Minuti,Secondi)
{
var VecchiaData=new Date();
var GiorniSettIT=['Domenica','Lunedi`','Martedi`','Mercoledi`','Giovedi`','Venerdi`','Sabato'];
var Mesi=['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];
VecchiaData.setFullYear(Anno,Mese,Giorno);
if (Ore != null ) VecchiaData.setHours(Ore);
if (Minuti != null ) VecchiaData.setMinutes(Minuti);
if (Secondi != null ) VecchiaData.setSeconds(Secondi);
var Ora=VecchiaData.getHours();
var Min=VecchiaData.getMinutes();
var Sec=VecchiaData.getSeconds();
if(Ora<=9) Ora="0"+Ora;
if(Min<=9) Min="0"+Min;
if(Sec<=9) Sec="0"+Sec;
document.getElementById('orologo_giorno_sett').innerHTML =GiorniSettIT[VecchiaData.getDay()];
document.getElementById('orologo_giorno').innerHTML =VecchiaData.getDate();
document.getElementById('orologo_mese').innerHTML =Mesi[VecchiaData.getMonth()];
document.getElementById('orologo_anno').innerHTML =VecchiaData.getFullYear();
document.getElementById('orologo_ora').innerHTML =Ora;
document.getElementById('orologo_min').innerHTML =Min;
document.getElementById('orologo_sec').innerHTML =Sec;
setTimeout("DateFrom("+Giorno+","+VecchiaData.getMonth()+","+Anno+",null,null,null)",1000);
}
</script>
</head>
<body onload="DateFrom(<?php echo $quel_giorno['mday'] ?>,<?php echo $quel_giorno['mon']-1 ?>,<?php echo $quel_giorno['year'] ?> )">
<table width="300" border="1">
<tr>
<td width="50" id="orologo_giorno_sett"></td>
<td width="50" id="orologo_giorno"></td>
<td width="50" id="orologo_mese"></td>
<td width="50" id="orologo_anno"></td>
<td width="50" id="orologo_ora"></td>
<td width="50" id="orologo_min"></td>
<td width="50" id="orologo_sec"></td>
</tr>
</table>
</body>
</html>![]()
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb