Avatar billede nbj1 Praktikant
03. oktober 2007 - 13:30 Der er 18 kommentarer og
1 løsning

hvad skal ændres i php.ini for at vise dato

hvad skal ændres i php.ini for at vise dato
jeg har prøvet med
echo curdate();
echo now();
echo date();
echo time(); viser dette 1191410978
men de andre kan jeg ikke få frem
Avatar billede pidgeot Nybegynder
03. oktober 2007 - 13:37 #1
curdate og now er (My)SQL-funktioner, ikke PHP.
date forventer et datoformat, så uden et sådant er det klart du ikke får noget ud - se http://dk2.php.net/date
Avatar billede nbj1 Praktikant
03. oktober 2007 - 13:42 #2
hee sad ligge og fandt udaf det også echo date("d.m.y"); ok man lærer hele tiden
skal bruge sammetid som jeg har i mysql med now
da jeg vel lave et tjek af tid og dato for login og logud så jeg kan generere nogle data udfra det.
Avatar billede pidgeot Nybegynder
03. oktober 2007 - 14:17 #3
Som der også står på den side jeg linkede til, så sker det helt af sig selv når du ikke angiver et timestamp som anden parameter - så anvender PHP serverens lokale tid.
Avatar billede nbj1 Praktikant
03. oktober 2007 - 14:29 #4
yep men det er så for at vise tid i php for at gemme bruger jeg så bedst med now() eller den variable jeg har lavet med tid da jeg skal gemme som xxxx-xx-xx xx:xx:xx som jeg har i php med date("Y-m-d H:i:s");
eller er det et fedt?
Avatar billede pidgeot Nybegynder
03. oktober 2007 - 14:30 #5
I princippet er det et fedt, men når det er det aktuelle tidspunkt du skal bruge, ville jeg bruge NOW() i SQL'en. Den anden kan du så bruge når du skal bruge et andet tidspunkt end det aktuelle.
Avatar billede nbj1 Praktikant
03. oktober 2007 - 14:31 #6
variablen var fint nok
Avatar billede nbj1 Praktikant
03. oktober 2007 - 14:32 #7
ok for nu skal jeg have trukket de to tider fra henanden så jeg har tiden han har været online og samtidigt gemme den tid
Avatar billede nbj1 Praktikant
03. oktober 2007 - 16:58 #8
hvordan kan man lige trække de to fra henanden jeg har prøvet med
$online_tid = $logud-$logind; skulle det ikke være det?
Avatar billede pidgeot Nybegynder
03. oktober 2007 - 17:13 #9
Konverter det til timestamps med strtotime, hvis du ikke allerede har gjort det. På den måde kan du trække dem fra hinanden for at få tiden i sekunder.
Avatar billede nbj1 Praktikant
03. oktober 2007 - 17:24 #10
hmm gemmer det kun som time kan geme som timestamp men er lidt på tynd is her
ellers prøvet med
$tid = mysql_query("SELECT * FROM user TIMEDIFF('logind','logud'")or die (mysql_error());
men giver error :(
Avatar billede pidgeot Nybegynder
03. oktober 2007 - 17:54 #11
Du kan jo ikke nøjes med at bruge time - så går det jo galt hvis man logger ind kl. 23:58 og ud igen 0:02.

Mht. beregningen - forudsat du har dato/tiden i MySQL's format:

$onlinetid = strtotime($logud)-strtotime($login);

Og så kan du jo bagefter lægge den til noget i databasen med mysql_query('UPDATE user SET onlinetid=onlinetid+'.$onlinetid.' WHERE ...');

Noget du dog ikke lader til helt at tænke på er at det ikke er givet der reelt bliver logget ud.
Avatar billede nbj1 Praktikant
03. oktober 2007 - 18:04 #12
det ser udtil at virke fint TAK, men er der en måde så efternavn vises
if 00.00.04 = sec
  if 00.01.04 = min
if 01.00.04 = hours
eller skal der som her laves if sætninger ?
Avatar billede pidgeot Nybegynder
03. oktober 2007 - 18:15 #13
Hvis du mener om du selv skal splitte op i timer, minutter, etc., så ja - men du har jo et tal der angiver antal sekunder vedkommende har været aktiv, så det er jo simple udregninger:

$dage=floor($tid/86400);
$tid=$tid-$dage*86400;
$timer=floor($tid/3600);
$tid=$tid-$timer*3600;
$minutter=floor($tid/60);
$sekunder=$tid-$minutter*60;

...og så skrive ud på en passende måde, alt efter hvordan det skal se ud.
Avatar billede nbj1 Praktikant
03. oktober 2007 - 18:19 #14
ok mange TAK
Avatar billede nbj1 Praktikant
03. oktober 2007 - 18:59 #15
hvordan ?
$online_tid = strtotime($logud)-strtotime($login);
giver eks 5 i udskrift med echo $online_tid; , gemt i mysql som 00:00:05
Avatar billede nbj1 Praktikant
03. oktober 2007 - 19:04 #16
aha det skal gemmes inden i mysql med det du viser da hvis kommer over 59 sec gemmes tiden ikke ???
Avatar billede pidgeot Nybegynder
03. oktober 2007 - 19:11 #17
Gem tiden som et heltal (sekunder), ikke en datetime.
Avatar billede nbj1 Praktikant
03. oktober 2007 - 19:17 #18
yep lige hvad jeg har fundt udaf dam bøvlet :)
Avatar billede nbj1 Praktikant
03. oktober 2007 - 21:11 #19
take igen nu virker det med tid, gem, if, og sec, min , timer, og dage
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester