- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problemi con le date in PHP
-
Problemi con le date in PHP
Ciao a tutti quelli che leggono questo forum intanto .
Io ho un problema che mi sta facendo diventare matto , ho ricercato una soluzione dappertutto però non riesco ad andarne fuori dalla mia situazione .
Io ho un campo timestamp all'interno del database e fin qui tutto ok
vado a ciclare il tutto<?php do { ?>
<?php $gin = $row_news["DATA"];
?>
<br>
<table width="470" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="left" class="Stile1Copia">Aggiornata il <span class="Data"><?php echo $gin; ?></span></div></td>
</tr>
<tr>
<td class="Stile1titoloNero"><img src="images/punto.gif" width="14" height="9"><span class="Stile1titoloMaiuscolo"><?php echo $row_news['TITOLO']; ?></span></td>
</tr>Dove la varibile $gin è semplicemente quello che recupero dal database , l'ho trasformata in una variabile con quel nome per semplicità mia personale .
Domanda da un milione di dollari ??Io adesso come posso fare a trasformare la variabile gin nel formato
GG/MM/AAAA ORE-MINUTI-SECONDI ?
Aiutatemi vi prego perchè ci sto sbattendo la testa da un paio di giorni e veramente non so come andane fuori ....
Ciauzzz
-
Provato così?
$gin = date("d/m/Y H-i-s",$gin);
Per leggere la data fai ```
echo $gin;:)
-
@sitionweb said:
Provato così?
> $gin = date("d/m/Y H-i-s",$gin); >``` Per leggere la data fai ``` >echo $gin; >``` :) :x :x :x :x Caspita quando vado a vedere la pagina mi da questa data su tutti i record all'interno del database !!! 01/01/1970 01-33-26 Mi viene da piangere :impiccato: A proposito ti ringrazio per la tua risposta
-
Nella query metti :
Select UNIX_TIMESTAMP(DATA) as dataora....
per la visualizzazione:
echo date("d.m.y H.i.s",$row_news['dataora'])
Sostituendo le lettere dmy ecc. puoi modificare la visualizzazione
Valentino
-
mittico! propio ieri mi scervellavo per lo stesso
grazie!!!
-
@Lumpi said:
Nella query metti :
>Select UNIX_TIMESTAMP(DATA) as dataora.... >``` per la visualizzazione:
echo date("d.m.y H.i.s",$row_news['dataora'])
Sostituendo le lettere dmy ecc. puoi modificare la visualizzazione
Valentino
Magari mi andasse , accenderei un cero per Valentino :re:
Non so cosa ho combinato ( perchè sicuramente il danno l'ho fatto io )
Però con questo metodo mi salta fuori sempre la mitica data01.01.70 01.33.26 ( che tra l'altro non so proprio come faccia ad inventarsela , premetto che se io faccio la chiamata normale senza andare a trasformare la variabile , mi viene fuori la data giusta all'interno del DB , solamente che mi viene fuori il timestamp americano , quindi con le date rovescie rispetto alle nostre ) .
Però adesso che ci penso , siccome io uso una versione di php-myadmin diverso da quello che usa Aruba , ho notato questa cosetta qua , all'interno del campo timestamp
Mi scrive la data come fosse una vera data , e non come la vecchia versione che mi scriveva un numero intero !
Però adesso che ci penso non credo che sia questo il problema , altrimenti non le vedrei proprio le date ....
Avete qualche altra idea su quello che mi succede ?
Vi do delle informazioni in più , uso easyphp come server web , in locale , e poi invece come macchina in hosting uso una macchina linux , fedora core se non sbaglio , ma non penso sia questo nemmeno il problema .
Ciao a tutti e vi ringrazio dell'aiuto che mi state dando
-
La data non se la inventa (corrisponde allo 0 ), cambia il campo in timestamp e funzionerà
Valentino
-
@Lumpi said:
La data non se la inventa (corrisponde allo 0 ), cambia il campo in timestamp e funzionerà
Valentino
Il campo è settato su TIMESTAMP , però non funziona ?:bho:Facciamo cosi , indicami secondo te la strada giusta che devo seguire per poter fare bene questa cosa qua :
Voglio inserire delle news , con data di inserimento ( quindi TIMESTAMP )
Voglio che le news quando le tiro giu sulla pagina siano ordinate per data di inserimento e che la data la veda in maniera umana ( magari compresa di minuti secondi ) .
La mia mente malata mi suggerisce a questo punto di inserire un campo TIME , con aggiornamento contemporaneo all'inserimento , e l'aggiunta di questa mitica stringa nella query$query_news = "SELECT ID, date_format(DATA,'%d/%m/%Y')
DATA
, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM newsQuindi quando vado a vedere quello che ci sta dentro comporrò 2 variabili all'interno del ciclo DO
Una con la data nel formato giusto , e una con il tempo , l'unica cosa che mi fa impazzie di sta roba qua è che se io le metto in ornide per data , mi viene fuori una emerita s......ta , ovvero lui li mette in fila partendo dalla prima posizione del campo ( che dopo averlo trasformato con la mitica stringa , si trasforma nel campo dei giorni ) e quindi mi sbaglia perchè mettendo in ordine prima i giorni se ne strafrega dell'anno , Quindi il
13/8/2006 viene prima del 14/8/2005 , andando in ordine dal piu vecchio al piu recente perchè mi ha messo in ordine prima i giorni e poi i mesi e l'anno non l'ha nemmeno guardato !!!Voi direte , caspita è giusto perchè effettivamente lui ti ha girato le date però ragiona sempre con il sistema americano , che ha l'anno all'inizio del campo ,
Allora mi viene in mente sta cosa , non è che per caso sia che devo settare quell bellissima stringa che se non mi sbaglio si chiama
LC_time ecc.. ecc.. ? per far si che veda che sono localizzato in Italia ?
Ma io dico sti Americani Inglesi ecc..ecc.. quanto si divertono a romperle non bastava la guida rovescia , la frasi rovescie , anche le date rovescie !!!!
-
Mi dici come inserisci la i dati in DATA?
E' strana questa cosa a me funzione benissimo
Valentino
-
@Lumpi said:
Mi dici come inserisci la i dati in DATA?
E' strana questa cosa a me funzione benissimo
Valentino
Stavo lottando anche io su sta cosa qua ,
Scusa fammi un po di luce nel mio cervellino bacato ,
se io devo spedire i dati al database , come faccio a settare la funzione al'interno della query ?
Mi spiego meglio , come faccio a dirgli all'interno della mia query , che voglio che la data sia NOW ? oppure CURDATE , piu che altro dove caspita devo inserirla la funzione x queste cose qua ?Mitico Valentino ( corri in moto ? ) che stai perdendo tempo con me
scusa rispondo a quello che mi hai chiesto
Non inserisco i dati in DATA , perchè ho settato il valore NOW all'interno del database , quindi lui mi mette il timestamp in automatico , poi ti dico , nella versione del mio hoster di PHPMYADMIN , c'è addirittura lìopzione
ON_UPDATE_CURRENT_TIMESTAMP , che mi aggiorna il timestamp ogni volta che aggiorno il record
-
Fai delle prove inserendo echo $row_news['DATA']; in una parte della pagina e vedi che ti dice.
Se non c'è output hai un problema nelle variabili.
Come stai facendo dovrebbe andare bene, però potresti provare a fare cosi:insert into news (DATA, .., ..) values (now(), .., ..)
nella query scrivi come ti ho detto sopra.
Mitico Valentino ( corri in moto ? ) che stai perdendo tempo con me
Mi diverto e mi rilassoValentino
-
@Lumpi said:
Fai delle prove inserendo echo $row_news['DATA']; in una parte della pagina e vedi che ti dice.
Se non c'è output hai un problema nelle variabili.
Come stai facendo dovrebbe andare bene, però potresti provare a fare cosi:>insert into news (DATA, .., ..) values (now(), .., ..) >``` nella query scrivi come ti ho detto sopra. Mi diverto ;-) e mi rilasso Valentino sIGH :cry: :cry: :cry: Non c'è outpout , solamente all'interno del ciclo DO l'outpout salta fuori !!
-
<?php require_once('Connections/orchestra.php'); ?>
<?php require_once('Connections/fiatidelveneto.php'); ?>
<?php
mysql_select_db($database_orchestra, $orchestra);
$query_news = "SELECT UNIX_TIMESTAMP(DATA) ID,DATA
, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news ORDER BY DATA DESC";
$news = mysql_query($query_news, $orchestra) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);
$totalRows_news = mysql_num_rows($news);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>News</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<link href="style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<img src="images/news.gif"><?php do { ?>
<?php //$gin = $row_news["DATA"];
//$gin = date("d/m/Y H-i-s",$gin);
?>
<br>
<table width="470" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="left" class="Stile1Copia">Aggiornata il
<label></label>
<?php echo date("d.m.y H.i.s",$row_news['DATA']) ?></div></td>
</tr>
<tr>
<td class="Stile1titoloNero"><img src="images/punto.gif" width="14" height="9"><span class="Stile1titoloMaiuscolo"><?php echo $row_news['TITOLO']; ?></span></td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr>
<td class="Stile1"><?php echo $row_news['DESCRIZIONE']; ?></td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr>
<td><p><a href="<?php echo $row_news['LINK']; ?>" target="_blank" class="Label-Link"><?php echo $row_news['LABEL']; ?></a></p> </td>
</tr>
</table>
<br>
<?php } while ($row_news = mysql_fetch_assoc($news)); ?>
<br>
</body>
</html>
<?php
mysql_free_result($news);
?>Questo è lo script che uso
-
[LEFT]Aggiornata il 01.01.70 01.33.26[/LEFT]
Corsi ad indirizzo musicaleSono stati avviati i corsi di formazione musicale rivolti a ragazzi, giovani e meno giovani, orientati sia ad un ambito amatoriale che professionale.
L'insegnamento prevede tutti gli strumenti a fiato e a percussione.
I corsi sono promossi dalla Provincia di Venezia - Dipartimento Istruzione e Cultura.
leggi il depliant[LEFT]Aggiornata il 01.01.70 01.33.26[/LEFT]
Il primo CD dell'OrchestraE' in preparazione il primo CD dell'Orchestra di Fiati del Veneto.
Sarà l'evento dell'anno 2007 e consentirà a tutti gli appassionati di gustare il meglio del nostro repertorio che va dai classici (Pachelbel, Holst, ...) ad autori moderni (Van der Roost, De Haan, Morricone,...).[LEFT]Aggiornata il 01.01.70 01.33.26[/LEFT]
Tour di concerti in GermaniaDal 28 aprile al 2 maggio 2006 l'Orchestra di Fiati del Veneto ha tenuto una serie di concerti in Baviera e Franconia nelle località di Marktbreit, Ochsenfurt, Wurzburg e Rothenburg ob der Tauber nell'ambito di uno scambio culturale con il Collegium Musicum Iuvenale di Ochsenfurt.
L'occasione ha consentito al rappresentante della provincia di Venezia di promuovere le bellezze della terra ferma e del litorale veneziano.E questo il risultato che mi da
-
$query_news = "SELECT UNIX_TIMESTAMP(DATA) ID, `DATA`, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news ORDER BY DATA DESC"; ``` diventa
$query_news = "SELECT UNIX_TIMESTAMP(DATA) as dataora, ID,
DATA
, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news ORDER BY DATA DESC";e
<?php echo date("d.m.y H.i.s",$row_news['DATA']) ?></div></td>
diventa
<?php echo date("d.m.y H.i.s",$row_news['dataora']); ?></div></td>
Prova così Valentino
-
@Lumpi said:
$query_news = "SELECT UNIX_TIMESTAMP(DATA) ID, `DATA`, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news ORDER BY DATA DESC"; ``` diventa
>$query_news = "SELECT UNIX_TIMESTAMP(DATA) as dataora, ID, `DATA`, TIMES, TITOLO, TITOLO_INGLESE, DESCRIZIONE, DESCRIZIONE_INGLESE, LINK, VARIE, LABEL FROM news ORDER BY DATA DESC"; >``` e
<?php echo date("d.m.y H.i.s",$row_news['DATA']) ?></div></td>
diventa
> <?php echo date("d.m.y H.i.s",$row_news['dataora']); ?></div></td> >``` Prova così Valentino Guarda ti ringrazio veramente tantissimo , adesso funziona perfettamente sei un mito !!! L'unica cosa che non capisco è questa , perchè per far si che la data venga fuori giusta , mi tocca smazzarmi e dirgli che la variabile DATA è UNIXTIME , ed il valore rovesciarlo all'interno di un altra variabile dataora? Poi ti dico il problema c'è l'ho anche in un altro script , solamente che in questo vado ad inserire io la data ( che a questo punto secondo logica sarebbe meglio inserire con delle variabili , per far si che vadino dentro come DATETIME in formato Americano , e poi attaverso il mitico script che mi hai corretto , le rimaneggio in maniera giusta !!! scusa se ti stresso , ma io non sono del settore anzi ( sono perito meccanico vedi un po te ) , però mi piace da matti e ho imparato leggendo fiumi e fiumi di libri ( che assolutamente non ti spiegano nieente di ste cose ,anzi sono ripetitivi fino all'estremo , sempre le solite menate niente di approfondito ) Mi puoi consigliare qualche libro da leggere o manuale da sfogliare ( magari in italiano che non sarebbe proprio male ) Anche libri a livello scolastico , che forse spiegano meglio ste cose !! Come sono felice :yuppi: :yuppi: :yuppi: :yuppi: :yuppi: :yuppi:
-
L'unica cosa che non capisco è questa , perchè per far si che la data venga fuori giusta , mi tocca smazzarmi e dirgli che la variabile DATA è UNIXTIME , ed il valore rovesciarlo all'interno di un altra variabile dataora?
I formati non sono compatibili dataora è solo un nome a caso
Poi ti dico il problema c'è l'ho anche in un altro script , solamente che in questo vado ad inserire io la data ( che a questo punto secondo logica sarebbe meglio inserire con delle variabili , per far si che vadino dentro come DATETIME in formato Americano , e poi attaverso il mitico script che mi hai corretto , le rimaneggio in maniera giusta !!!
per l'inserimento manuale basta che scrivi tipo: 20061216111900 nel campo DATA
Internet è la mia maggior fonte di apprendimento e poi smanetta un po...
Ciao Valentino
-
[quote=Elvenesian]Ciao a tutti quelli che leggono questo forum intanto .
Io ho un problema che mi sta facendo diventare matto , ho ricercato una soluzione dappertutto però non riesco ad andarne fuori dalla mia situazione .
Io ho un campo timestamp all'interno del database e fin qui tutto ok
vado a ciclare il tuttoPENSO CHE IL TUO QUESITO, SE NON RISOLTO, LO SIA
Io adesso come posso fare a trasformare la variabile gin nel formato
GG/MM/AAAA ORE-MINUTI-SECONDI ?
$data_g = $gin[8].$gin[9];
$data_m = $gin[5].$gin[6];
$data_a = $gin[0].$gin[1].$gin[2].$gin[3];
$ore = $gin[11].$gin[12];
$min = $gin[14].$gin[15];
$sec = $gin[17].$gin[18];
$gin = $data_g.'-'.$data_m.'-'.$data_a.' | '.$ore.':'.$min.':'.$sec;COSI' OTTERRAI gg-mm-aaaa ore:min:sec. SE NON TI VA BENE CAMBIA ALL'INTERNO DELL'ULTIMA DICHIARAZIONE DELLA VARIABILE $gin o il trattino - oppure i due punti :.
Spero ti sia stato di aiuto
CIAO