Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Fiesta Online
You last visited: Today at 14:24

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



PHP & SQL Datetime

Discussion on PHP & SQL Datetime within the Fiesta Online forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2011
Posts: 334
Received Thanks: 32
PHP & SQL Datetime

hi ich hab ma ne frage zum datetime


das wäre der so genannte datums und uhrzeit eintrag und co so nun hab ich folgendes vor das man zwischen den rebirth 24 stunden warten muss wie das geht ist ja klar aber ich hab halt nen ganz anderes problem er trägt mir zwar ein datum in die SQL DB ein aber leider nicht das aktulle halt er trägt mir das hier immer ein [ 1970-01-01 00:00:23.000 ]

hab ich da vielleicht irgend ein fehler gemacht oder liegt es am SQL Server oder der PHP version

was ich nutze ist im moment

Windows 10
IIS
PHP v7.2
SQL Server 2017
Terrorkrieger is offline  
Old 08/23/2019, 04:38   #2
 
elite*gold: 127
Join Date: Nov 2018
Posts: 186
Received Thanks: 21
Beispiel :

PHP Code:
<td><?php echo date('d.m.y H:i:s'$row['Time']); ?></td>
Pr0xyPlayZ is offline  
Old 08/24/2019, 09:29   #3
 
KuminDesu's Avatar
 
elite*gold: 0
Join Date: Apr 2018
Posts: 180
Received Thanks: 31
Also als ich mal für meine Website ein Posting system gemacht habe aus lw hatte ich da auch ein Datum Column inserted hab ich es einfach indem ich mir ein String gemacht habe mit
PHP Code:
$date date('Y-m-d H:i:s'); 
und dann mit insert code eingefügt zeigt mir auch jetzt noch den heutigen datum an wenn ich was poste.
KuminDesu is offline  
Old 08/24/2019, 10:32   #4
 
elite*gold: 0
Join Date: Sep 2013
Posts: 562
Received Thanks: 361
Quote:
Originally Posted by Terrorkrieger View Post
hi ich hab ma ne frage zum datetime


das wäre der so genannte datums und uhrzeit eintrag und co so nun hab ich folgendes vor das man zwischen den rebirth 24 stunden warten muss wie das geht ist ja klar aber ich hab halt nen ganz anderes problem er trägt mir zwar ein datum in die SQL DB ein aber leider nicht das aktulle halt er trägt mir das hier immer ein [ 1970-01-01 00:00:23.000 ]

hab ich da vielleicht irgend ein fehler gemacht oder liegt es am SQL Server oder der PHP version

was ich nutze ist im moment

Windows 10
IIS
PHP v7.2
SQL Server 2017

Hier mal ein paar winks mit dem Zaunpfahl, ich kenne das rebirth system und seine funktionsweise leider nicht aber im grunde genommen sollte es vermutlich so laufen, dass du aus der datenbank, das zuletzt eingetragene Datum ausliest, in einer variable speicherst und die differenz zum aktuellen datum ermittelst und dann vergleichst ob diese größer als 24std ist. Sollte dem so sein, dann skript ausführen, wenn nich dann nich.


dass dir 1970 eingetragen wird liegt vermutlich daran, dass du mit leeren bzw. falschen werten arbeitest und damit meine ich ganz speziell die zeile
Code:
if ($old_date_timestamp = date("Y-m-d H:i:s"))
denn hier setzt du den timestamp den du später bei
Code:
$db_eintragen_rRebirthDate = $new_date = date("Y-m-d H:i:s", $old_date_timestamp);
benutzen willst wieder in ein normales datumsformat und zerstörst dir so den wert.

also mein tipp fürs erste, ändere zuallererst mal
Code:
if ($old_date_timestamp = date("Y-m-d H:i:s"))
zu
Code:
if ($old_date_timestamp == date("Y-m-d H:i:s"))
das sollte dir zumindest schonmal das problem mit den 70ern beheben

edit: Hatte grad noch etwas langeweile und hab dir mal eine möglichkeit zusammengebastelt wie man
den 24Stunden Check vollziehen könnte.

D0n! is offline  
Thanks
1 User
Old 08/24/2019, 13:10   #5
 
elite*gold: 0
Join Date: Oct 2011
Posts: 334
Received Thanks: 32
danke D0n ich werd es dann ma versuchen und geb dann bescheid wenn noch ne frage offen sein sollte
Terrorkrieger is offline  
Old 08/24/2019, 21:02   #6
 
Amanecer's Avatar
 
elite*gold: 0
Join Date: Aug 2016
Posts: 114
Received Thanks: 90
So vielleicht?

PHP Code:
$db_eintragen_rRebirthDate time();
if (
$db_auslesen_chars_trebirthinfo_save[0]->rRebirthNo == 0) {
    
$db_eintragen_syntax_trebirthinfo "INSERT INTO tRebirthInfo (nCharNo, rRebirthDate, rRebirthNo) VALUES ('".$_POST['character']."', '".$db_eintragen_rRebirthDate."', '".$db_eintra gen_rRebirthNo."')";
} else {
    
$sth $dbh->prepare('SELECT rRebirthDate FROM tRebirthInfo WHERE nCharNo = ?');
    
$sth->bindValue(1$_POST['character'], PDO::PARAM_INT);
    
$sth->execute();
    if (
$sth->fetchColumn() + 86400 <= time()) {
        
$db_eintragen_syntax_trebirthinfo "UPDATE [dbo].[tRebirthInfo] SET rRebirthDate= '".$db_eintragen_rRebirthDate."', rRebirthNo= '".$db_eintragen_rRebirthNo."' WHERE nCharNo= '".$_POST['character']."'";
    }

Keine Ahnung blicke bei dem Script auch net so ganz durch. Wenn du das verwendest muss rRebirthDate ein int bzw bigint sein wenn du vorhast es nach 2038 noch zu verwenden
Amanecer is offline  
Thanks
1 User
Old 08/25/2019, 03:29   #7
 
elite*gold: 0
Join Date: Sep 2013
Posts: 562
Received Thanks: 361
Quote:
Originally Posted by Amanecer View Post
So vielleicht?

PHP Code:
$db_eintragen_rRebirthDate time();
if (
$db_auslesen_chars_trebirthinfo_save[0]->rRebirthNo == 0) {
    
$db_eintragen_syntax_trebirthinfo "INSERT INTO tRebirthInfo (nCharNo, rRebirthDate, rRebirthNo) VALUES ('".$_POST['character']."', '".$db_eintragen_rRebirthDate."', '".$db_eintra gen_rRebirthNo."')";
} else {
    
$sth $dbh->prepare('SELECT rRebirthDate FROM tRebirthInfo WHERE nCharNo = ?');
    
$sth->bindValue(1$_POST['character'], PDO::PARAM_INT);
    
$sth->execute();
    if (
$sth->fetchColumn() + 86400 <= time()) {
        
$db_eintragen_syntax_trebirthinfo "UPDATE [dbo].[tRebirthInfo] SET rRebirthDate= '".$db_eintragen_rRebirthDate."', rRebirthNo= '".$db_eintragen_rRebirthNo."' WHERE nCharNo= '".$_POST['character']."'";
    }

Keine Ahnung blicke bei dem Script auch net so ganz durch. Wenn du das verwendest muss rRebirthDate ein int bzw bigint sein wenn du vorhast es nach 2038 noch zu verwenden
Laut seinem script ist rRebirthDate vom typ Datum im Format "Y-m-d H:i:s" aber ja, sollte er auf typ Datum verzichten und stattdessen nen timestamp dort speichern (bigint vllt. bevorzugt) sollte das ganze genau so problemlos funktionieren, wenns denn genau das ist was er erreichen möchte.
D0n! is offline  
Old 08/25/2019, 14:46   #8
 
elite*gold: 0
Join Date: Oct 2011
Posts: 334
Received Thanks: 32
also wie schon Amanecer sagte so ungefähr sieht mein script aus also muss ich in der SQL DB die spalte rRebirthDate auf bigint umstellen dann ja ?
Terrorkrieger is offline  
Reply


Similar Threads Similar Threads
[FIX] SQL Error to convert Varchar in Datetime
04/12/2016 - Shaiya PServer Guides & Releases - 13 Replies
Hi many guys asked me why they were getting in their log, the SQL error: error to convert "Varchar in Datetime", so i took a look on EPvPers and i didn't see (maybe i'm wrong o.o) any post with the problem solved. It happens with Warehouse dcing when trying to store items or the notice board ! It's not really a Fix but more a specific attention to pay on SQL configurations. SQL maybe tried to save the datas in a wrong date format ! To check if you're in this case, run the next query:
[php][sql] php-sql query fetch JID as '0'
04/02/2016 - SRO Private Server - 1 Replies
fghfhgfhgfhgfh
[HELP] Datetime error
06/23/2009 - CO2 Private Server - 0 Replies
Ok im geting this error when i try to load 10 expballs per day here it is http://img188.imageshack.us/img188/8279/erroryfn.p ng



All times are GMT +1. The time now is 14:25.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.